Docker ist eine Open-Source-Container-Engine, und ein Container ist eigentlich eine virtualisierte, unabhängige Umgebung. Daher können Entwickler Anwendungen in einen solchen Docker-Container packen und sie dann auf jedem Computer veröffentlichen, der den Docker-Container ausführen kann, um mehrere Pakete zu erstellen und bereitzustellen Orte auf einmal, um Bereitstellungsprobleme zu lösen, die durch Umweltprobleme verursacht werden.
Ein dem Container entsprechendes Konzept ist das Image. Das Image kann als Image unseres täglichen Installationssystems betrachtet werden, bei dem es sich um eine laufende Umgebung handelt. Natürlich vergleiche ich in unserer objektorientierten Programmierung lieber ein Bild mit einer Klasse, und ein Container ist eine Instanz einer Klasse, sodass viele Container basierend auf einem Bild erstellt werden können. Jeder Container ist spezifisch. Wir können Änderungen am Container vornehmen und den Container dann in ein neues Image packen, sodass in Zukunft neue Container basierend auf dem geänderten Image erstellt werden können. Der Container selbst kann einfach als virtuelle, unabhängige Betriebsumgebung verstanden werden. Wir müssen unsere Anwendung in diese Umgebung packen, um sie wieder einfach bereitstellen zu können.
Gentoo
# emerge --ask docker
CentOS
# yum install docker-ce
Ubuntu
# apt-get install docker-ce
Bogen
# pacman -S docker
# systemctl start docker
# docker --help 管理命令: container 管理容器 image 管理镜像 network 管理网络 命令: attach 介入到一个正在运行的容器 build 根据 Dockerfile 构建一个镜像 commit 根据容器的更改创建一个新的镜像 cp 在本地文件系统与容器中复制 文件/文件夹 create 创建一个新容器 exec 在容器中执行一条命令 images 列出镜像 kill 杀死一个或多个正在运行的容器 logs 取得容器的日志 pause 暂停一个或多个容器的所有进程 ps 列出所有容器 pull 拉取一个镜像或仓库到 registry push 推送一个镜像或仓库到 registry rename 重命名一个容器 restart 重新启动一个或多个容器 rm 删除一个或多个容器 rmi 删除一个或多个镜像 run 在一个新的容器中执行一条命令 search 在 Docker Hub 中搜索镜像 start 启动一个或多个已经停止运行的容器 stats 显示一个容器的实时资源占用 stop 停止一个或多个正在运行的容器 tag 为镜像创建一个新的标签 top 显示一个容器内的所有进程 unpause 恢复一个或多个容器内所有被暂停的进程
Es gibt umfangreichere Optionen in Unterbefehlen, die mit docker COMMAND --help angezeigt werden können. Zum Beispiel:
#docker run --help
Docker-Nutzung in der PraxisAls nächstes werde ich Docker verwenden, um als Beispiel einen Nginx-Server bereitzustellen. Um einen Container zu erstellen, benötigen wir zunächst ein Image, das zum Erstellen des Containers verwendet wird. Finden Sie Nginx-bezogene Bilder im Docker Hub.
# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 6959 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1134 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 452 [OK] ... ...
Ziehen Sie sich das offizielle Bild oben an, das von Benutzern nach ihren eigenen Bedürfnissen erstellt wurde, um es allen zu erleichtern.
# docker pull nginx Using default tag: latest latest: Pulling from library/nginx afeb2bfd31c0: Pull complete 7ff5d10493db: Downloading [===============> ] 6.651 MB/21.87 MB d2562f1ae1d0: Download complete
Docker-Bilder werden übrigens in Ebenen gespeichert, sodass das obige Nginx-Bild drei Ebenen hat. Außerdem wird dem Bild jedes Mal eine Ebene hinzugefügt, wenn ein neues Bild basierend auf einem neuen Container erstellt wird.
Als nächstes verwenden Sie dieses Bild, um direkt einen neuen Container zu starten:
# docker run --name my-nginx -d -p 8080:80 nginx
Geben Sie zu diesem Zeitpunkt Folgendes in den Browser ein: http://localhost:8080/, um auf nginx zuzugreifen. Parametererklärung:
Dann schauen wir uns ein komplexeres Beispiel an:
# docker run --name my-nginx \ -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro \ -v /some/html:/usr/share/nginx/html:ro \ -p 8080:80 \ -d nginx
Dieses Beispiel hat einen zusätzlichen Parameter -v. Die Funktion dieses Parameters besteht darin, lokale Dateien oder Ordner in den Container einzuhängen. Das letzte ro oder rw steuert, ob der Mount beschreibbar ist.
Der obige Befehl stellt die Konfigurationsdatei nginx.conf in der lokalen Datei im Container bereit und stellt außerdem die anzuzeigende statische Seite im Container bereit. Hinweis: Nachdem der Container einen Befehl ausgeführt hat und der Befehl endet, wird auch der Container beendet.
Als nächstes schauen wir uns andere Docker-Befehle an.
Alle laufenden Container anzeigen:
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1fe91b5a4cd4 nginx "nginx -g 'daemon ..." 39 minutes ago Up 39 minutes 0.0.0.0:8080->80/tcp my-nginx # docker ps -a ### 列出包括未运行的容器
Container-Laufprotokolle anzeigen:
# docker logs my-nginx 172.17.0.1 - - [05/Oct/2017:07:31:11 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" "-" 2017/10/05 07:31:11 [error] 7#7: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "localhost:8080"
Container neu starten:
# docker restart my-nginx my-nginx
Beenden Sie die Ausführung eines Containers:
# docker stop my-nginx my-nginx # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Starten Sie einen vorhandenen Container:
# docker start my-nginx my-nginx # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1fe91b5a4cd4 nginx "nginx -g 'daemon ..." 50 minutes ago Up 3 seconds 0.0.0.0:8080->80/tcp my-nginx
Töte einen laufenden Container direkt:
# docker kill my-nginx
Container umbenennen:
# docker rename my-nginx new-nginx
Container löschen:
# docker rm new-nginx
Alle Bilder dieser Maschine anzeigen:
# docker imags
Erstellen Sie ein Bild mit einem vorhandenen Container:
# docker commit -m "nothing changed" my-nginx my-nginx-image sha256:f02483cdb842a0dc1730fe2c653603fa3271e71c31dbb442caccd7ad64860350 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-nginx-image latest f02483cdb842 6 seconds ago 108 MB nginx latest da5939581ac8 3 weeks ago 108 MB
Erstellen Sie einen Container mit dem Bild, das wir selbst erstellt haben:
# docker run --name test -d -p 8081:80 my-nginx-image 12ba86eabdef0121d875bdb547f1101d4eb54ff7cb36e20214fb1388659af83d # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12ba86eabdef my-nginx-image "nginx -g 'daemon ..." 7 seconds ago Up 5 seconds 0.0.0.0:8081->80/tcp test 299f4ede9e79 nginx "nginx -g 'daemon ..." 11 minutes ago Up 11 minutes 0.0.0.0:8080->80/tcp my-nginx
Wenn der Startbefehl des von uns verwendeten Containers eine Shell ist, können wir mit dem Befehl „attach“ in den Container eingreifen, genau wie wir ssh verwenden, um eine Verbindung zu einem Server herzustellen.
# docker attach some-container
Starten Sie direkt beim Erstellen eines Containers eine interaktive Shell und löschen Sie den Container nach dem Beenden automatisch:
# docker run -it --rm centos
Dieser Artikel stellt die einfache Verwendung von Docker vor und gibt außerdem ein praktisches Beispiel, um die verschiedenen Operationen des Docker-Befehls zu demonstrieren. Als Schnellstartartikel ist dieser Artikel relativ einfach. Viele konzeptionelle Dinge erfordern das Lesen anderer Informationen, aber nach dem Lesen dieses Artikels sollten Sie über grundlegende Kenntnisse im Umgang mit Docker verfügen. Darüber hinaus sollten nachfolgende Artikel über Dockerfile und Docker-Compose schreiben.
Das obige ist der detaillierte Inhalt vonBeginnen Sie in fünf Minuten mit Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!