Maison > Java > javaDidacticiel > le corps du texte

Explication détaillée des notes d'étude Docker pour créer un environnement d'exploitation JAVA Tomcat

高洛峰
Libérer: 2017-02-03 13:29:49
original
1324 Les gens l'ont consulté

Avant-propos

Docker vise à fournir une solution de déploiement automatisé pour les applications, créant rapidement un conteneur (machine virtuelle légère) sur un système Linux et déployant et exécutant des applications via des fichiers de configuration automatisés. les applications peuvent être facilement réalisées, ce qui est très pratique. Grâce à l'utilisation de conteneurs, l'environnement de production et l'environnement de développement peuvent être facilement séparés sans s'affecter mutuellement. C'est la manière la plus courante de jouer à Docker. D'autres façons de jouer incluent les applications Web à grande échelle, le déploiement de bases de données, le déploiement continu, les clusters, les environnements de test, le cloud computing orienté services, le VDI de bureau virtuel, etc.

Impression subjective : Docker est écrit en langage Go, utilise cgroup pour réaliser l'isolation des ressources et la technologie des conteneurs utilise LXC. Elle fournit une solution de virtualisation légère qui peut exécuter des processus Unix de manière indépendante. Il fournit un moyen d'automatiser le déploiement de logiciels dans un environnement sécurisé et reproductible. Les commandes LXC sont un peu compliquées. Si vous êtes intéressé, voici un article que j'ai écrit auparavant basé sur LXC (création d'une version simple de la plate-forme cloud JAVA PAAS à partir de zéro).

Les principes de mise en œuvre, les théories associées, les scénarios d'application, etc. seront écrits plus tard dans cette série. Voici un avant-goût rapide, entièrement manuel, pour créer un environnement d'exécution Tomcat basé sur Docker. Sortez d’abord une démo décente, nous pouvons voir l’effet, ce qui peut nous aider à aller plus loin.

Environnement

Dans tous les environnements de cet article, ubuntu-13.10-server-amd64 s'exécute sur VMware WorkStation. Notez qu'il s'agit d'un système 64 bits. En théorie, d'autres machines virtuelles le sont. également tout à fait réalisable.

L'installation de Docker

Docker version 0.7 nécessite la prise en charge du noyau Linux 3.8 et du système de fichiers AUFS.

# 检查一下AUFS是否已安装
sudo apt-get update
sudo apt-get install linux-image-extra-`uname -r`
# 添加Docker repository key
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
# 添加Docker repository,并安装Docker
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
# 检查Docker是否已安装成功
sudo docker version
# 终端输出 Client version: 0.7.1
Go version (client): go1.2
Git commit (client): 88df052
Server version: 0.7.1
Git commit (server): 88df052
Go version (server): go1.2
Last stable version: 0.7.1
Copier après la connexion

Supprimer sudo

Sous Ubuntu, lors de l'exécution de Docker, vous devez saisir sudo et le mot de passe à chaque fois. C'est très fatigant. Affinons-le ici et changeons l'utilisateur actuel. Les autorisations d'exécution sont ajoutées au groupe d'utilisateurs Docker correspondant.

# 添加一个新的docker用户组
sudo groupadd docker
# 添加当前用户到docker用户组里,注意这里的yongboy为ubuntu server登录用户名
sudo gpasswd -a yongboy docker
# 重启Docker后台监护进程
sudo service docker restart
# 重启之后,尝试一下,是否生效
docker version
#若还未生效,则系统重启,则生效
sudo reboot
Copier après la connexion

Installer une machine virtuelle Docker exécutant instance-ubuntu

Docker est installé et le processus en arrière-plan est automatiquement démarré. Vous pouvez installer l'instance de machine virtuelle (voici l'apprentissage/utilisé dans. la démonstration officielle) tutoriel miroir à titre d'exemple) :

docker pull learn/tutorial
Copier après la connexion

Une fois l'installation terminée, voyez l'effet

docker run learn/tutorial /bin/echo hello world
Copier après la connexion

Entrez de manière interactive la machine virtuelle nouvellement installée

docker run -i -t learn/tutorial /bin/bash
Copier après la connexion

dans la machine, vous verrez :

root@51774a81beb3:/#
Copier après la connexion

indiquant que vous avez entré la machine virtuelle interactive. environnement.

Installez le serveur de terminal SSH pour faciliter notre utilisation externe du client SSH pour vous connecter et accéder

apt-get update
apt-get install openssh-server
which sshd
/usr/sbin/sshd
mkdir /var/run/sshd
passwd #输入用户密码,我这里设置为123456,便于SSH客户端登陆使用
exit #退出
Copier après la connexion

Obtenez l'ID du conteneur d'instance que vous venez d'utiliser

#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51774a81beb3 learn/tutorial:latest /bin/bash 3 minutes ago Exit 0 thirsty_pasteur
Copier après la connexion

Vous pouvez voir que l'ID du conteneur de l'opération en cours est : 51774a81beb3. Notez qu'une fois toutes les opérations effectuées, elles doivent être soumises et enregistrées pour une connexion SSH facile :

docker commit 51774a81beb3 learn/tutorial
Copier après la connexion

Exécutez cette instance miroir en arrière-plan pendant une longue période :

docker run -d -p 22 -p 80:8080 learn/tutorial /usr/sbin/sshd -D
Copier après la connexion

Le serveur SSH exécuté dans le conteneur Ubuntu occupe le port 22 et -p 22 est spécifié. -p 80:8080 signifie que notre Ubuntu exécutera Tomcat sur le port 8080, mais le port mappé en externe (en dehors du conteneur) est 80.

À ce stade, vérifiez s'il fonctionne correctement.

#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
871769a4f5ea learn/tutorial:latest /usr/sbin/sshd -D About a minute ago Up About a minute 0.0.0.0:49154->22/tcp, 0.0.0.0:80->8080/tcp focused_poincare
Copier après la connexion

Notez que le numéro de port de connexion SSH attribué au hasard ici est 49154 :

ssh root@127.0.0.1 -p 49154
Copier après la connexion

Entrez le mot de passe, est-ce que ça va ? Entré ? Une fois que vous contrôlez SSH, le reste est très simple, installez JDK, installez Tomcat, etc., c'est à vous de décider. Voici le script d'installation :

# 在ubuntu 12.04上安装oracle jdk 7
apt-get install python-software-properties
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install -y wget
apt-get install oracle-java7-installer
java -version
# 下载tomcat 7.0.47
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.47/bin/apache-tomcat-7.0.47.tar.gz
# 解压,运行
tar xvf apache-tomcat-7.0.47.tar.gz
cd apache-tomcat-7.0.47
bin/startup.sh
Copier après la connexion

Par défaut, Tomcat occupera le port 8080. Lors du démarrage de l'instance miroir tout à l'heure, -p 80:8080 a été spécifié, instance miroir Ubuntu / Le conteneur ouvre le port 8080 et le mappe au port hôte 80. Si vous connaissez l'adresse IP de l'hôte, vous pouvez y accéder librement. Sur la machine hôte, testez-le simplement via curl :

curl http://192.168.190.131
Copier après la connexion

Bien sûr, vous pouvez également utiliser un navigateur pour y accéder.

Dans des situations réelles, Tomcat peut ne pas être autorisé à ouvrir directement le port 80 au monde extérieur. Il est généralement situé derrière nginx/apache ou un pare-feu. Ce qui précède n'est qu'une démonstration.

Résumé

Construire un environnement d'exécution Tomcat avec l'aide de Docker est généralement très simple et permet de constater la présence du PAAS. Oui, utiliser Docker comme service sous-jacent du PAAS n’est pas compliqué en soi. Il est temps maintenant de parler de la façon d'utiliser des fichiers de script pour créer une instance d'image, et en même temps de parler des principes et mécanismes d'implémentation de Docker.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour des explications plus détaillées sur les notes d'étude Docker et les articles connexes sur la création d'un environnement d'exploitation JAVA Tomcat, veuillez prêter attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!