Zuvor haben wir die Installationen von Hypervisoren wie Xen und Cloud-Middleware wie Openstack gesehen. Vor kurzem hat sich eine neue Technologie namens Docker-Container zum heißesten Trend in der Anwendungsentwicklung entwickelt. In diesem Artikel werden wir sehen, was genau ein Docker ist, seine Unterschiede zu virtuellen Maschinen, die Installation von Docker und seine Verwendung.
Was ist Docker?
Docker ist ein Container, der eine Software in ein vollständiges Dateisystem verpackt, das alles enthält, was es zum Ausführen benötigt:Code, Laufzeit, Systemtools, Systembibliotheken – alles, was Sie auf einem Server installieren können. Container werden auf Betriebssystemebene virtualisiert, wodurch sie bei der Nutzung von Systemressourcen effizienter sind als Hypervisoren. Es gibt viele Linux-Container-Technologien wie LXC, Docker usw.,
Was ist der Unterschied zwischen Docker und einer virtuellen Maschine?
Mit einem anderen architektonischen Ansatz sind Container viel tragbarer und effizienter, obwohl sie eine ähnliche Ressourcenisolation aufweisen. Das folgende Bild zeigt den architektonischen Unterschied zwischen einem Container und virtuellen Maschinen.
Wie installiere ich einen Docker-Container auf CentOS 7?
Die neueste offizielle Version von Docker ist v1.10. Die folgenden Anweisungen beschreiben die Installation von Docker Container auf einem CentOS 7-Server. Melden Sie sich als Root beim CentOS 7-Server an und führen Sie die folgenden Schritte aus.
Schritt 1: Als Best Practice aktualisieren wir das System mit yum wie unten gezeigt:
# yum -y update
Schritt 2: Standardmäßig ist Docker im CentOS-Extra-Repository enthalten. Wenn Sie eine aktuellere Version von Docker verwenden möchten, führen Sie den folgenden Befehl aus, um es zum Repository hinzuzufügen.
# tee /etc/yum.repos.d/docker.repo <<-'EOF'
> [dockerrepo]
> name=Docker Repository
> baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
> enabled=1
> gpgcheck=1
> gpgkey=https://yum.dockerproject.org/gpg
> EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
Schritt 3: Installieren Sie das Docker-Paket und die Docker-Registrierung. Die Docker-Registrierung ist eine zustandslose, hochgradig skalierbare serverseitige Anwendung, die Docker-Images speichert und verteilt.
# yum -y install docker docker-registry
Schritt 3: Starten Sie nach erfolgreicher Installation von Docker den Docker-Dienst.
# systemctl start docker.service
Schritt 4: Stellen Sie sicher, dass der Docker-Dienst beim Booten mit dem folgenden Befehl startet:
# systemctl enable docker.service
Schritt 5: Überprüfen Sie den Docker-Dienst
# systemctl status docker.service
docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago Docs: http://docs.docker.com Main PID: 30108 (docker) CGroup: /system.slice/docker.service ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0" Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e" Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n" Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0" Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e" Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n" Hint: Some lines were ellipsized, use -l to show in full.
Wie verwende ich Docker?
Schritt 1: Laden Sie einen Docker-Container herunter. Führen Sie den folgenden Befehl aus, um das neueste stabile offizielle CentOS-Image zu erhalten:
# docker pull centos
Der obige Befehl ruft die neueste stabile Centos-Version ab. So ziehen Sie eine andere Version des CentOS-Images, beispielsweise CentOS 6:
# docker pull centos:centos6
Schritt 2: So überprüfen Sie, ob die Bilder lokal heruntergeladen wurden:
# docker images centos REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB
Schritt 3: So listen Sie alle verfügbaren heruntergeladenen Bilder auf:
# docker images
Wie man einen Docker-Container betreibt
Schritt 1: Führen Sie einen einfachen Centos-Container mit einer Bash-Shell aus. Hier, -i Option hängt stdin an und stdout , -t weist ein tty zu .
# docker run -i -t centos /bin/bash
Das ist es! Jetzt landen Sie auf einer Bash-Shell in einem Centos-Docker-Container.
Befehle zum Arbeiten mit Docker-Containern
1. So trennen oder trennen Sie sich vom Container, ohne den Container herunterzufahren:
Ctrl-p + Ctrl-q
2. Viele Container sind bereits von der Community verfügbar. So listen Sie die Container der Community auf:
# docker search centos INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 2042 [OK] docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK] docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK] ... ...
# docker search ubuntu INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK] docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK] docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK] docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK] ... ...
3. Alle Container auflisten
# docker ps -a
4. Nur laufende Container auflisten
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare
5. Stoppen Sie einen Container
Beziehen Sie die Container-ID aus der obigen Auflistung und verwenden Sie sie, um den entsprechenden Container zu stoppen:
# docker stop 4293c8265d00
6:Starten Sie den Docker-Dienst neu
# systemctl restart docker.service