Vorwort
Docker zielt darauf ab, eine automatisierte Bereitstellungslösung für Anwendungen bereitzustellen, die schnell einen Container (leichte virtuelle Maschine) auf einem Linux-System erstellt und Anwendungen über Konfigurationsdateien bereitstellt und ausführt Installation, Bereitstellung und Upgrade von Anwendungen. Durch die Verwendung von Containern können die Produktionsumgebung und die Entwicklungsumgebung problemlos getrennt werden, ohne sich gegenseitig zu beeinflussen. Dies ist die häufigste Methode von Docker. Weitere Spielmöglichkeiten umfassen groß angelegte Webanwendungen, Datenbankbereitstellung, kontinuierliche Bereitstellung, Cluster, Testumgebungen, serviceorientiertes Cloud Computing, virtuelle Desktop-VDI usw.
Subjektiver Eindruck: Docker ist in der Go-Sprache geschrieben, verwendet cgroup, um Ressourcenisolation zu erreichen, und die Containertechnologie verwendet LXC. Es bietet eine leichte Virtualisierungslösung, die Unix-Prozesse unabhängig ausführen kann. Es bietet eine Möglichkeit, die Bereitstellung von Software in einer sicheren, wiederholbaren Umgebung zu automatisieren. LXC-Befehle sind etwas kompliziert. Wenn Sie interessiert sind, finden Sie hier einen Artikel, den ich zuvor basierend auf LXC geschrieben habe (Erstellen einer einfachen Version der JAVA PAAS-Cloud-Plattform).
Die Implementierungsprinzipien, zugehörigen Theorien, Anwendungsszenarien usw. werden später in dieser Serie geschrieben. Hier ist ein kurzer, vollständig manueller Vorgeschmack zum Erstellen einer Tomcat-Laufumgebung auf Basis von Docker. Nachdem wir zunächst eine anständige Demo herausgebracht haben, können wir den Effekt sehen, der uns möglicherweise weiterhelfen kann.
Umgebung
In allen Umgebungen dieses Artikels wird ubuntu-13.10-server-amd64 auf VMware WorkStation ausgeführt. Theoretisch sind dies auch andere virtuelle Maschinen auch durchaus machbar.
Docker installieren
Docker Version 0.7 erfordert Linux-Kernel 3.8-Unterstützung und das AUFS-Dateisystem.
# 检查一下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
Sudo entfernen
Unter Ubuntu müssen Sie bei der Ausführung von Docker jedes Mal sudo und das Passwort eingeben. Das ist sehr ermüdend. Lassen Sie uns hier eine Feinabstimmung vornehmen und den aktuellen Benutzer ändern Ausführungsberechtigungen werden der entsprechenden Docker-Benutzergruppe hinzugefügt.
# 添加一个新的docker用户组 sudo groupadd docker # 添加当前用户到docker用户组里,注意这里的yongboy为ubuntu server登录用户名 sudo gpasswd -a yongboy docker # 重启Docker后台监护进程 sudo service docker restart # 重启之后,尝试一下,是否生效 docker version #若还未生效,则系统重启,则生效 sudo reboot
Installieren Sie eine virtuelle Docker-Instanz-Ubuntu-Maschine
Docker wird installiert und der Hintergrundprozess wird automatisch gestartet. Sie können die Instanz der virtuellen Maschine installieren (hier finden Sie Informationen zum Lernen/Verwenden). (die offizielle Demonstration) Tutorial-Spiegel als Beispiel):
docker pull learn/tutorial
Nachdem die Installation abgeschlossen ist, sehen Sie den Effekt
docker run learn/tutorial /bin/echo hello world
Geben Sie interaktiv die neu installierte virtuelle Maschine ein
docker run -i -t learn/tutorial /bin/bash
In der Maschine wird Folgendes angezeigt:
root@51774a81beb3:/#
zeigt an, dass Sie die interaktive Maschine eingegeben haben Umfeld.
Installieren Sie den SSH-Terminalserver, um uns die externe Nutzung des SSH-Clients für die Anmeldung und den Zugriff zu erleichtern.
apt-get update apt-get install openssh-server which sshd /usr/sbin/sshd mkdir /var/run/sshd passwd #输入用户密码,我这里设置为123456,便于SSH客户端登陆使用 exit #退出
Erhalten Sie die gerade ausgeführte Instanzcontainer-ID.
#docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 51774a81beb3 learn/tutorial:latest /bin/bash 3 minutes ago Exit 0 thirsty_pasteur
Sie können sehen, dass die Container-ID des aktuellen Vorgangs lautet: 51774a81beb3. Beachten Sie, dass alle Vorgänge nach der Ausführung übermittelt und für eine einfache SSH-Anmeldung gespeichert werden müssen:
docker commit 51774a81beb3 learn/tutorial
Diese Spiegelinstanz für längere Zeit als Hintergrundprozess ausführen:
docker run -d -p 22 -p 80:8080 learn/tutorial /usr/sbin/sshd -D
Der im Ubuntu-Container ausgeführte SSH-Server belegt Port 22 und -p 22 ist angegeben. -p 80:8080 bedeutet, dass unser Ubuntu Tomcat auf Port 8080 ausführt, der extern (außerhalb des Containers) zugeordnete Port jedoch 80 ist.
Überprüfen Sie zu diesem Zeitpunkt, ob es erfolgreich ausgeführt wird.
#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
Beachten Sie, dass die zufällig zugewiesene SSH-Verbindungsportnummer hier 49154 ist:
ssh root@127.0.0.1 -p 49154
Geben Sie das Passwort ein, ist es in Ordnung ? Eingetragen? Sobald Sie SSH steuern, ist der Rest sehr einfach: Installieren Sie JDK, installieren Sie Tomcat usw., es liegt an Ihnen. Das Folgende ist das Installationsskript:
# 在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
Standardmäßig belegt Tomcat Port 8080. Beim Starten der Spiegelinstanz wurde gerade -p 80:8080 angegeben, Ubuntu-Spiegelinstanz / Der Container öffnet Port 8080, der dem Host-Port 80 zugeordnet ist. Wenn Sie die Host-IP-Adresse kennen, können Sie frei darauf zugreifen. Testen Sie es auf dem Host-Computer einfach über Curl:
curl http://192.168.190.131
Natürlich können Sie auch einen Browser verwenden, um darauf zuzugreifen.
In realen Situationen darf Tomcat Port 80 möglicherweise nicht direkt für die Außenwelt öffnen. Er befindet sich normalerweise hinter Nginx/Apache oder einer Firewall.
Zusammenfassung
Der Aufbau einer Tomcat-Laufzeitumgebung mit Hilfe von Docker ist im Allgemeinen sehr einfach und ermöglicht es uns, die Präsenz von PAAS zu erkennen. Ja, die Verwendung von Docker als zugrunde liegendem Dienst von PAAS ist an sich nicht kompliziert. Jetzt ist es an der Zeit, darüber zu sprechen, wie Skriptdateien zum Erstellen einer Image-Instanz verwendet werden, und gleichzeitig über die Implementierungsprinzipien und -mechanismen von Docker zu sprechen.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.
Ausführlichere Erläuterungen zu Docker-Studiennotizen und verwandte Artikel zum Aufbau einer JAVA Tomcat-Betriebsumgebung finden Sie auf der chinesischen PHP-Website!