English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。
w3codebox@w3codebox:~# docker
可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
例如我们要查看 docker stats 指令的具体使用方法:
w3codebox@w3codebox:~# docker stats --help
如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:
$ docker pull ubuntu
以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
$ docker run -it ubuntu /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:
root@ed09e4490c57:/# exit
查看所有的容器命令如下:
$ docker ps -a
点击图片查看大图:
使用 docker start 启动一个已停止的容器:
$ docker start b750bbbcfd88
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
点击图片查看大图:
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。
停止容器的命令如下:
$ docker stop <容器 ID>
停止的容器可以通过 docker restart 重启:
$ docker restart <容器 ID>
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach
docker exec:请大家使用 docker exec 命令,因为此命令退出容器终端时,不会导致容器停止。
attach Befehl
Nachstehend wird die Verwendung des docker attach Befehls demonstriert.
$ docker attach 1e560fca3906
Hinweis: Wenn Sie aus diesem Container aussteigen, wird der Container angehalten.
exec Befehl
Nachstehend wird die Verwendung des docker exec Befehls demonstriert.
docker exec -it 243c32535da7 /bin/bash
Hinweis: Wenn Sie aus diesem Container aussteigen, wird der Container nicht gestoppt, daher wird empfohlen, docker exec Grund.
Mehr Parameterbeschreibungen verwenden docker exec --hilfe Befehl anzeigen.
Exportieren Sie den Container
Wenn Sie einen lokalen Container exportieren möchten, können Sie docker export Befehl.
$ docker export 1e560fca3906 > ubuntu.tar
Exportieren Sie den Container 1e560fca3906 Schnappschuss in lokale Datei ubuntu.tar.
Dadurch wird der Container-Snapshot in eine lokale Datei exportiert.
Importieren Sie den Container-Snapshot
Sie können docker import verwenden, um aus Container-Snapshots wieder Abbilder zu importieren. Der folgende Beispiel importiert den Snapshotdatei ubuntu.tar in das Abbild test./ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
Außerdem kann durch Angabe einer URL oder eines bestimmten Verzeichnisses importiert werden, z.B.:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
Verwendung zum Löschen von Containern docker rm Befehl:
$ docker rm -f 1e560fca3906
Die folgenden Befehle können alle abgeschlossenen Container bereinigen.
$ docker container prune
Der von uns ausgeführte Container hat keine besondere Funktion.
Lassen Sie uns nun versuchen, eine Webanwendung mit Docker zu erstellen.
Wir werden eine Python Flask-Anwendung im Docker-Container ausführen, um eine Webanwendung zu betreiben.
w3codebox@w3codebox:~# docker pull training/webapp # Laden Sie das Abbild w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
Parameterbeschreibung:
-d:Lassen Sie den Container im Hintergrund laufen.
-P:Karten Sie die Netzwerkports, die im Container verwendet werden, zufällig auf den von uns verwendeten Host.
使用 docker ps 来查看我们正在运行的容器:
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE COMMAND ... PORTS d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp
Hier gibt es zusätzliche Portinformationen.
PORTS 0.0.0.0:32769->5000/tcp
Docker hat 5000 Port (Standardport für Python Flask) wird auf den Hostport gemappt 32769 .
Dann können wir die WEB-Anwendung über den Browser aufrufen
Wir können auch -p Parameter, um einen anderen Port zu setzen:
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker psAnzeigen der laufenden Container
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
Innerhalb des Containers 5000 Port wird auf den lokalen Host gezeigt 5000 Port.
durch docker ps Der Befehl zeigt die Portzuweisung des Containers andocker Es wurde auch eine andere Kurzwahl bereitgestellt docker port, mit docker port Es kann die bestimmte Portzuweisung eines bestimmten (ID oder Name) Containers an den Hostport ansehen.
Der ID des von uns erstellten WEB-Anwendungskontainers ist bf08b7f2cd89 Der Name wizardly_chandrasekhar.
Ich kann docker port bf0 verwenden8b7f2cd89 oder docker port wizardly_chandrasekhar, um die Portzuweisung des Containers anzuzeigen.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID oder Name] zeigt den Standardausgang des Containers an.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * Läuft auf http://0.0.0.0:5000/ (Drücken Sie STRG+C zum Beenden) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
-f: Lassen docker logs Wie man tail -f Genau wie ausgegeben wird, um den Standardausgang des Containers anzuzeigen
Von oben können wir sehen, dass die Anwendung die verwendet 5000 Port und können den Zugriffsnachweis der Anwendung sehen.
我们还可以使用 docker top 来查看容器内部运行的进程
w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... TIME CMD root 23245 23228 ... 00:00:00 python app.py
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "Id": "bf0"8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85", "Created": "2018-09-17T01:41:26.174228707Z", "Path": "python", "Args": [ "app.py" ], "State": { "Dead": false, "Pid": 23245 "ExitCode": 0, "Error": "", "StartedAt": "2018-09-17T01:41:26.494185806Z", "FinishedAt": "0001-01-01T00:00:00Z" } ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
已经停止的容器,我们可以使用命令 docker start 来启动。
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l 查询最后一次创建的容器:
# docker ps -l CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
Läufende Container können mit dem Befehl docker restart neu gestartet werden
Wir können den Befehl docker rm verwenden, um nicht benötigte Container zu löschen
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
Beim Löschen eines Containers muss der Container im Standby-Modus sein, andernfalls wird der folgende Fehler ausgegeben
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar Fehlermeldung vom Daemon: Sie können keinen laufenden Container bf0 entfernen8b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Beenden Sie das Container vor dem Versuch der Entfernung oder erzwungenen Entfernung