Docker:Einführung
Docker ist ein offenes Plattformverwaltungstool für Linux-Container. Es bietet Entwicklern und Systemadministratoren die Möglichkeit, Anwendungen zu erstellen und in leichtgewichtigen Containern zu verpacken. Docker besteht aus den folgenden Komponenten:
- Docker-Engine – Ein tragbares, leichtes Laufzeit- und Paketierungstool
- Docker-Hub – Ein Cloud-Dienst zum Teilen von Anwendungen und Automatisieren von Arbeitsabläufen
Docker wird verwendet, um Image-basierte Anwendungscontainer zu erstellen. Image-basierte Container packen eine Anwendung mit dem individuellen Runtime-Stack in einen einzigen Container. Dadurch wird der Container unabhängig vom Host-Betriebssystem und der Kernel-Version. Infolgedessen können Sie dieselbe Anwendung unverändert auf Laptops, virtuellen Maschinen im Rechenzentrum und jeder Cloud ausführen. Sie können diesen Container ohne Kompatibilitätsprobleme auf einen anderen Computer übertragen, auf dem Docker ausgeführt wird und auf dem die Anwendung ausgeführt wird.
Im Folgenden werden weitere Vorteile der Ausführung von Anwendungen in Docker-Containern aufgelistet:
- Docker-Images enthalten nur den Inhalt, der zum Ausführen einer Anwendung erforderlich ist, sodass sie kleiner sind als virtuelle Maschinen, die das gesamte Betriebssystem benötigen.
- Ein Docker-Container läuft schneller als eine Anwendung, die den Overhead einer ganzen virtuellen Maschine beinhaltet.
- Ein Docker-Container enthält seine eigenen Netzwerkschnittstellen, sein eigenes Dateisystem und seinen eigenen Speicher, wodurch die im Container ausgeführte Anwendung von anderen Prozessen auf dem Hostcomputer isoliert und gesichert werden kann.
Docker-Images
Docker-Container werden aus Docker-Images erstellt. Sie erstellen Docker-Container, um Ihre Anwendungen aus diesen Docker-Images auszuführen. Das folgende Beispiel erstellt einen Docker-Container namens „test“ aus einem Docker-Image namens centos:7“ und führt /bin/bash.
aus# docker create --name test centos:7 /bin/bash Unable to find image 'centos:7' locally Trying to pull repository docker.io/library/centos ... 7: Pulling from docker.io/library/centos 469cfcc7a4b3: Pull complete Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for docker.io/centos:7 a79ce1655f2ca17c7ac8cc15f307ba0bb438fbebd4595568df3433dd5ff79b73
Images sind schreibgeschützte Vorlagen, die ein vollständiges Betriebssystem mit installierten Diensten und zusätzlichen Anwendungen enthalten können. Docker bietet die Möglichkeit, Images zu erstellen oder vorhandene Images zu aktualisieren. Sie können Docker-Images über die Befehlszeile erstellen oder die Anweisungen zum Erstellen eines Images in einer Docker-Datei speichern. Docker liest diese Docker-Datei und führt die Anweisungen aus, wenn Sie die Erstellung eines Docker-Images initiieren.
Jedes Bild beginnt mit einem Basisbild (z. B. Centos). Jedes Docker-Image besteht aus einer Reihe von Ebenen, die aus diesen Basisimages erstellt werden. Jede Anweisung in der Dockerfile erstellt eine neue Ebene im Bild. Jedes Mal, wenn Sie eine Änderung an einem Docker-Image vornehmen, wird nur diese Ebene aktualisiert oder hinzugefügt. Docker verwendet unionfs, um diese Ebenen zu einem einzigen Image zu kombinieren. Der Dateisystemdienst unionfs ermöglicht das Überlagern von Dateien und Verzeichnissen verschiedener Dateisysteme in einem einzigen Dateisystem.
Nachdem Sie ein Docker-Image erstellt haben, können Sie die Images freigeben, indem Sie sie in Docker-Registrierungen speichern. Diese Register können privat oder öffentlich sein. Docker Hub ist die öffentliche Docker-Registrierung, die als Software-as-a-Service-Plattform für die gemeinsame Nutzung und Verwaltung von Docker-Containern fungiert.
So installieren Sie Docker auf CentOS / RHEL / FedoraSo installieren Sie Docker auf einem Mac
Die Docker-Hub-Registrierung
Die Docker-Hub-Registrierung hostet Anwendungen als Docker-Images und stellt Dienste bereit, mit denen Sie eine Docker-Umgebung erstellen und verwalten können. Die Docker-Hub-Registrierung ist Eigentum von Docker, Inc. und wird von Docker, Inc. verwaltet. Sie befindet sich unter https://registry.hub.docker.com/.
Docker Hub bietet eine Reihe von Repositorys und jedes Repository kann eine Reihe von Images enthalten. Neben dem Hosten von Docker-Images bietet Docker Hub Dienste wie Benutzerauthentifizierung, automatisierte Image-Builds und Workflow-Tools sowie die Integration mit GitHub und BitBucket. Um diese Docker-Dienste nutzen zu können, müssen Sie ein Docker-Hub-Konto erstellen. Sie können ein Konto unter https://hub.docker.com/account/signup/ erstellen. Sie können ein Konto auch über die Befehlszeile erstellen, indem Sie den folgenden Befehl verwenden:
# docker loginSo erstellen Sie ein öffentliches/privates Repository in Docker Hub und verbinden es remote über die Befehlszeile
Sie können nach Docker-Images suchen und Images vom Docker-Hub ziehen (herunterladen), ohne ein Konto zu haben. Um Bilder zu pushen (hochzuladen), Kommentare zu einem Bild oder Repository zu hinterlassen und alle verfügbaren Docker-Hub-Dienste zu nutzen, benötigen Sie ein Docker-Hub-Konto.
Installieren und Starten von Docker
Das Installieren und Starten des Docker-Dienstes ist eine einfache Aufgabe. Sie können den folgenden Befehl verwenden, um das Docker-Paket zu installieren:
# yum install docker
Verwenden Sie den Befehl systemctl, um den Docker-Dienst zu aktivieren und zu starten.
# systemctl enable docker # systemctl start docker
Standardmäßig verwendet Docker Devicemapper als Speichertreiber. Mit RedHat Linux 7 können Sie die Docker-Engine für die Verwendung von Btrfs konfigurieren. Dadurch können Sie die Snapshot-Funktionen von Btrfs nutzen. Der folgende Befehl zeigt alle Dateien an, die aus dem Docker-Paket installiert werden:
# rpm -ql docker /etc/docker /etc/docker/certs.d /etc/docker/certs.d/redhat.com /etc/docker/certs.d/redhat.com/redhat-ca.crt /etc/docker/certs.d/redhat.io /etc/docker/certs.d/redhat.io/redhat-ca.crt ...
Sie können sehen, dass zusätzlich zu den Docker-Binärdateien und Konfigurationsdateien Dokumentation und Manpages für alle Docker-Befehle installiert sind. Das Verzeichnis /var/lib/docker ist leer, bis der Docker-Dienst gestartet wird. Die folgende Befehlsfolge zeigt den Inhalt des Verzeichnisses vor und nach dem Start von Docker an.
# ls /var/lib/docker # systemctl enable docker # systemctl start docker # ls /var/lib/docker containers graph linkgraph.db tmp volumes devicemapper init repositories-devicemapper trust
Das Docker-Dienstprogramm
Die Docker-Befehlszeilenschnittstelle hat über 30 Befehle. Eine Liste der Befehle finden Sie auf der Docker-Manpage. Der Befehl docker info zeigt systemweite Informationen zur Docker-Installation an. Weitere Informationen finden Sie auf der Manpage docker-info. Beachten Sie, dass der Standardspeichertreiber Devicemapper ist und dass Daten und Metadaten in Loop-Geräten gespeichert werden:/dev/loop0 und /dev/loop1.
# docker info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 1 Server Version: 1.13.1 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: false Native Overlay Diff: true Logging Driver: journald ...
Andere Benutzer als root können Docker-Befehle ausführen, wenn Sie sie zur Docker-Gruppe hinzufügen und den Docker-Dienst neu konfigurieren.
Durchsuchen der Docker-Hub-Registrierung nach Images
Verwenden Sie den Docker-Suchbefehl, um den Docker-Hub nach Bildern zu durchsuchen. Unten sehen Sie die Ausgabe des Befehls „docker search“:
# docker search centos INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 4207 [OK] docker.io docker.io/ansible/centos7-ansible Ansible on Centos7 108 [OK] docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x8... 94 [OK] docker.io docker.io/consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 52 [OK] docker.io docker.io/imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 [OK] ...
Dieser Befehl durchsucht den Docker-Hub nach „centos“-Images. Die Ausgabe enthält den Namen des Repositorys/Bildes, eine Beschreibung, die Anzahl der vergebenen Sterne, ob das Bild offiziell ist und ob es automatisiert ist. Die Namensspalte hat die folgende Form und kann das enthaltende Repository enthalten, um eine eindeutige Identifizierung bereitzustellen:
[repository_name]/[image_name]
Sterne messen die Beliebtheit von Bildern. Jeder mit einem Docker-Hub-Konto kann ein Bild markieren, wenn es ihm gefällt. Das folgende Beispiel sucht nach „centos“-Bildern mit mindestens 3 Sternen:
# docker search -s 3 centos Flag --stars has been deprecated, use --filter=stars=3 instead INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 4207 [OK] docker.io docker.io/ansible/centos7-ansible Ansible on Centos7 108 [OK] docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x8... 94 [OK] ...
Ein „offizielles“ Repository wird von einem Anbieter oder Mitwirkenden für Docker zertifiziert. Ein „automatisiertes“ Image wird durch den automatisierten Build-Prozess von Docker Hub erstellt.
Bilder von Docker Hub herunterladen
Verwenden Sie den Befehl „docker pull“, um ein Image oder ein Repository aus der Docker-Hub-Registrierung auf Ihr lokales System herunterzuladen. Das folgende Beispiel ruft das Bild centos:latest ab.
# docker pull centos Using default tag: latest Trying to pull repository docker.io/library/centos ... latest: Pulling from docker.io/library/centos Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for docker.io/centos:latest
Verwenden Sie den Befehl „docker images“, um Bilder aufzulisten, die im lokalen Docker-Repository gespeichert sind.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos 7 e934aafc2206 2 weeks ago 199 MB docker.io/centos latest e934aafc2206 2 weeks ago 199 MB
Jedes Bild in einem Repository wird durch TAG und BILD-ID unterschieden.
Das Folgende zeigt den Speicherort der Docker-Konfigurationsdateien.
# cd /var/lib/docker/ # ll total 4 drwx------. 3 root root 77 Apr 21 07:57 containers drwx------. 3 root root 21 Apr 21 07:56 image drwxr-x---. 3 root root 18 Apr 21 07:56 network drwx------. 6 root root 4096 Apr 21 07:57 overlay2 drwx------. 4 root root 30 Apr 21 07:56 plugins drwx------. 2 root root 6 Apr 21 07:56 swarm drwx------. 2 root root 6 Apr 21 07:57 tmp drwx------. 2 root root 6 Apr 21 07:56 trust drwx------. 2 root root 24 Apr 21 07:56 volumesSo listen / suchen / ziehen Sie Docker-Images unter Linux
Eine Anwendung in einem Container ausführen
Verwenden Sie den docker run-Befehl, um eine Anwendung in einem Container auszuführen. Dieser Befehl startet einen Prozess mit einem eigenen Dateisystem, einem eigenen Netzwerk und einem eigenen isolierten Prozessbaum. Die folgende Syntax enthält nicht alle verfügbaren Optionen für den Befehl:
# docker run [OPTION...] IMAGE [COMMMAND] {ARG...]
Das IMAGE, das den Prozess startet, kann Standardwerte in Bezug auf den im Container auszuführenden Prozess, das Netzwerk und mehr definieren, aber Docker-Ausführungsoptionen überschreiben die Einstellungen im IMAGE. Wenn das IMAGE nicht lokal verfügbar ist, zieht docker run das Image auf die gleiche Weise wie der docker pull-Befehl, bevor es den Container im IMAGE startet.
Unten sehen Sie zwei Beispiele für die Verwendung von docker run. Das erste Beispiel verwendet das „centos“-Image, das bereits auf dem lokalen Computer vorhanden ist. Docker verwendet das Image, um eine neue CentOS-Umgebung zu erstellen, und führt dann den echo-Befehl aus, um „Hello“ anzuzeigen.
# docker run centos /bin/echo "Hello" Hello
Das zweite Beispiel verwendet das Fedora-Image, das auf dem lokalen System nicht vorhanden ist. Docker zieht das Image aus Docker Hub und verwendet dann das Image, um eine neue Fedora-Umgebung zu erstellen, und führt den echo-Befehl aus.
# docker run fedora /bin/echo "Hello" Unable to find image 'fedora:latest' locally Trying to pull repository docker.io/library/fedora ... latest: Pulling from docker.io/library/fedora 2176639d844b: Pull complete Digest: sha256:ec588fc80b05e19d3006bf2e8aa325f0a2e2ff1f609b7afb39176ca8e3e13467 Status: Downloaded newer image for docker.io/fedora:latest Hello
In beiden Beispielen stoppen die Docker-Container, nachdem „Hello“ auf dem Bildschirm angezeigt wird. Verwenden Sie den Befehl docker ps, um Container aufzulisten, und es werden keine Container angezeigt:
# docker ps
Das liegt daran, dass „docker ps“ nur aktuell laufende Container anzeigt. Um alle Container einschließlich der gestoppten anzuzeigen, verwenden Sie den Befehl „docker ps -a“.
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7b772ea59c92 fedora "/bin/echo Hello" 25 seconds ago Exited (0) 23 seconds ago vigilant_haibt 263e715ae13c centos "/bin/echo Hello" About a minute ago Exited (0) About a minute ago condescending_aryabhata a79ce1655f2c centos:7 "/bin/bash" 4 hours ago Created test
Der Befehl „docker images“ zeigt, dass das „neueste“ Image aus dem „fedora“-Repository von Docker Hub heruntergeladen wurde, wenn der Befehl „docker run“ verwendet wird:
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos 7 e934aafc2206 2 weeks ago 199 MB docker.io/centos latest e934aafc2206 2 weeks ago 199 MB docker.io/fedora latest 9110ae7f579f 6 weeks ago 235 MB
Ausführen eines interaktiven Docker-Containers
Verwenden Sie das –t und –i Optionen mit dem Befehl docker run, um einen interaktiven Container auszuführen. Diese Optionen werden beschrieben:
- -t :Pseudo-TTY zuweisen und an STDIN (Standardeingabe) eines Containers anhängen
- -ich :STDIN eines Containers offen halten
Unten sehen Sie zwei Beispiele für die Verwendung von Docker-Run-Befehlen mit den Optionen –t und –i. In beiden Beispielen läuft CentOS Linux 7.4 auf dem lokalen System:
# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
Das erste Beispiel verwendet das Bild „centos:7“. Docker verwendet das Image, um eine neue CentOS-Umgebung zu erstellen, und führt dann den Bash-Shell-Befehl aus. Die Betriebssystemversion dieses Images ist CentOS 7.
# docker run -t -i centos:7 /bin/bash [root@b3e1316c4653 /]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
Das zweite Beispiel verwendet das Ubuntu-Image. Da kein bestimmtes Image angegeben wurde, verwendet Docker das „neueste“ Ubuntu-Image, um eine neue Ubuntu-Umgebung zu erstellen, und führt dann den Bash-Shell-Befehl aus. Die Betriebssystemversion dieses Images ist Ubuntu 16.04.4. Da das Ubuntu-Image nicht lokal verfügbar ist, lädt Docker es zuerst aus dem Repository herunter und führt es dann aus.
# docker run -t -i ubuntu /bin/bash Unable to find image 'ubuntu:latest' locally Trying to pull repository docker.io/library/ubuntu ... latest: Pulling from docker.io/library/ubuntu d3938036b19c: Pull complete a9b30c108bda: Pull complete 67de21feec18: Pull complete 817da545be2b: Pull complete d967c497ce23: Pull complete Digest: sha256:9ee3b83bcaa383e5e3b657f042f4034c92cdd50c03f73166c145c9ceaea9ba7c Status: Downloaded newer image for docker.io/ubuntu:latest
root@9ee24718262c:/# cat /etc/os-release NAME="Ubuntu" VERSION="16.04.4 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.4 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial
Sie können den Exit-Befehl verwenden oder STRG + D drücken, um einen interaktiven Container zu verlassen.
Auflisten von Containern und Anzeigen von Containerprotokollen
Verwenden Sie den Befehl docker ps, um Informationen zu Docker-Containern aufzulisten. Standardmäßig werden nur laufende Container aufgelistet. Fügen Sie das –a hinzu Option mit dem Befehl docker ps, um alle Container anzuzeigen. Die Ausgabe enthält eine eindeutige Container-ID und einen eindeutigen Containernamen, die automatisch generiert werden, wenn der Container erstellt wird. Die Ausgabe des Befehls docker ps enthält auch das Image, das zum Erstellen des Containers verwendet wurde, den Befehl, der im Container ausgeführt wird, und Statusinformationen. Statusinformationen enthalten, wann der Container erstellt wurde und wie lange der Container ausgeführt wurde.
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ee24718262c ubuntu "/bin/bash" 3 minutes ago Exited (127) 2 seconds ago modest_turing b3e1316c4653 centos:7 "/bin/bash" 6 minutes ago Exited (0) 4 minutes ago gracious_pare 7b772ea59c92 fedora "/bin/echo Hello" 18 minutes ago Exited (0) 18 minutes ago vigilant_haibt 263e715ae13c centos "/bin/echo Hello" 19 minutes ago Exited (0) 19 minutes ago condescending_aryabhata a79ce1655f2c centos:7 "/bin/bash" 4 hours ago Created test
Der Befehl docker logs schaut in den Container und gibt seine Standardausgabe zurück. Sie können entweder die Container-ID oder den Containernamen als Argument für den Befehl verwenden.
# docker logs b3e1316c4653 [root@b3e1316c4653 /]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@b3e1316c4653 /]# exit exit
Im obigen Beispiel zeigt der Befehl docker logs, dass der Befehl „cat /etc/redhat-release“ im Container ausgeführt wurde. Die Befehle docker ps und docker logs müssen von außerhalb des Containers ausgeführt werden, d. h. von einem anderen Terminalfenster aus.
Alle Informationen zu einem Container oder Bild anzeigen
Verwenden Sie den Befehl docker inspect, um alle für einen Container oder ein Image verfügbaren Informationen anzuzeigen. Das folgende Beispiel zeigt einige der angezeigten Informationen. Verwenden Sie das –f {{.section.subsection}} Möglichkeit, eine bestimmte Information anzuzeigen. Das folgende Beispiel zeigt nur Netzwerkeinstellungen:
# docker inspect -f {{.NetworkSettings}} modest_turing {{ 98e04ea6d68753022ae2212b06b1514323927a1ed117448bc70ea3fa9a2f4a06 false 0 map[] /var/run/docker/netns/98e04ea6d687 [] []} { 0 0 } map[bridge:0xc4200c0300]}
Das folgende Beispiel zeigt die IP-Adresse:
# docker inspect -f {{.NetworkSettings.IPAddress}} modest_turing 172.17.0.10
Das folgende Beispiel zeigt die Prozess-ID:
# docker inspect -f {{.State.Pid}} modest_turing 7181
Das folgende Beispiel zeigt den im Container ausgeführten Befehl:
# docker inspect -f {{.Config.Cmd}} modest_turing [/bin/bash]
Wenn Sie alle Optionen/Eigenschaften des Containers anzeigen möchten, verwenden Sie keine Option mit „docker inspect“:
# docker inspect modest_turing [ { "Id": "9ee24718262c9f7ed3320019163a8b1b2bb1bccc83eb362a5512a74eaa4ad57f", "Created": "2018-04-21T12:22:21.983441857Z", "Path": "/bin/bash", "Args": [], "State": { ....
Dies wird eine ziemlich lange Ausgabe sein, die alle Eigenschaften des Containers zeigt.
Erstellen eines neuen Containers
Der Befehl docker run führt einen Prozess in einem neuen Container aus. Sie können auch den Befehl docker create verwenden, um einen Container zu erstellen, den Sie zu einem späteren Zeitpunkt starten können. Die Syntax und die verfügbaren Optionen für docker create ähneln der docker run-Syntax.
Das folgende Beispiel erstellt einen neuen Container namens „geeklab“ aus dem Centos:7-Image und führt beim Start den Bash-Shell-Befehl aus. Wenn Sie die Option –name weglassen, wird automatisch ein Containername generiert.
# docker create -t -i --name geeklab centos:7 /bin/bash 667fd40faeb69113d035f08e5a910275a8463aa2a6a0796833f590e878732e17
Die Ausgabe des Befehls ist eine sehr lange eindeutige Container-ID. Der Container startet nicht sofort, wie der Befehl docker ps zeigt, der standardmäßig nur laufende Container anzeigt:
# docker ps
Sie müssen „docker ps -a“ ausführen, um alle Container anzuzeigen. Das Beispiel leitet die Ausgabe an grep weiter und durchsucht einen Teil der Container-ID:
# docker ps -a | grep 667fd 667fd40faeb6 centos:7 "/bin/bash" About a minute ago Created geeklab
Starten, Stoppen und Entfernen eines Containers
Verwenden Sie den „Docker-Start“. “-Befehl, um einen vorhandenen Container zu starten. Verwenden Sie das –a und –i Optionen, um STDIN (Standardeingabe), STDOUT (Standardausgabe) und STDERR (Standardfehler) der aktuellen Shell an den Container anzuhängen und auch zu bewirken, dass alle Signale an den Container weitergeleitet werden.
# docker start -a -i geeklab [root@667fd40faeb6 /]#
Verwenden Sie innerhalb eines Containers den Exit-Befehl oder STRG-d, um den Container zu stoppen. Verwenden Sie von außerhalb des Containers, d. h. von einem anderen Terminalfenster aus, den Befehl docker stop, um einen Container zu stoppen.
# docker stop geeklab
Verwenden Sie den „Docker-RM “-Befehl zum Entfernen eines Containers. Sie können mehrere Container mit einem einzigen Befehl entfernen. Verwenden Sie das –f Option zum Entfernen eines laufenden Containers.
# docker rm geeklab geeklab
Alle drei dieser Docker-Befehle akzeptieren entweder die Container-ID oder den Containernamen als Argument.
Der Befehl docker rm entfernt einen Container. Verwenden Sie den Docker-rmi-Befehl, um ein Bild zu entfernen:
# docker rmi [IMAGE]Docker-Container auflisten / starten / stoppen / löschen
Zusätzliche Befehle in einem laufenden Container ausführen
Verwenden Sie den docker exec-Befehl, um einen Befehl in einem laufenden Container auszuführen. Schließen Sie ähnlich wie beim Befehl docker run die Optionen –t und –i ein, um einen interaktiven Befehl auszuführen. Geben Sie entweder die Container-ID oder den Containernamen als Argument an.
Im folgenden Beispiel startet der Befehl docker exec eine neue interaktive Bash-Shell im „guest“-Container:
# docker exec -t -i geeklab /bin/bash [root@68b5b713c37b /]#
Das folgende Beispiel verwendet den docker exec-Befehl, um den sshd-Dienst auf dem „geeklab“-Container zu starten. Auf dem „geeklab“-Container läuft CentOS 6.4. In diesem Beispiel werden die Optionen -t und -i nicht benötigt.
# docker exec guest service sshd start Generating SSH2 RSA host key: [ OK ] Generating SSH1 RSA host key: [ OK ] Generating SSH2 DSA host key: [ OK ] Starting sshd: [ OK ]
Der sshd-Dienst wird auf dem Container gestartet und die Kontrolle kehrt zum initiierenden Hostsystem zurück.