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
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
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
Une fois l'installation terminée, voyez l'effet
docker run learn/tutorial /bin/echo hello world
Entrez de manière interactive la machine virtuelle nouvellement installée
docker run -i -t learn/tutorial /bin/bash
dans la machine, vous verrez :
root@51774a81beb3:/#
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 #退出
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
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
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
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
Notez que le numéro de port de connexion SSH attribué au hasard ici est 49154 :
ssh root@127.0.0.1 -p 49154
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
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
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 !