天天看點

docker desktop ubuntu鏡像_附錄1、Docker 常用指令及示例

本文是《Docker必知必會系列》第九篇,原文釋出于個人部落格:悟塵紀。

上一篇:Docker必知必會系列(八):Kubernetes 入門實踐

常用指令清單

一張圖總結 Docker 常用指令及狀态變化:

docker desktop ubuntu鏡像_附錄1、Docker 常用指令及示例

可以通過

docker COMMAND --help

來檢視這些指令的具體用法。

  • attach

    :依附到一個正在運作的容器中;
  • build

    :從一個 Dockerfile 建立一個鏡像;
  • commit

    :從一個容器的修改中建立一個新的鏡像;
  • cp

    :在容器和本地宿主系統之間複制檔案中;
  • create

    :建立一個新容器,但并不運作它;
  • diff

    :檢查一個容器内檔案系統的修改,包括修改和增加;
  • events

    :從服務端擷取實時的事件;
  • exec

    :在運作的容器内執行指令;
  • export

    :導出容器内容為一個

    tar

    包;
  • history

    :顯示一個鏡像的曆史資訊;
  • images

    :列出存在的鏡像;
  • import

    :導入一個檔案(典型為

    tar

    包)路徑或目錄來建立一個本地鏡像;
  • info

    :顯示一些相關的系統資訊;
  • inspect

    :顯示一個容器的具體配置資訊;
  • kill

    :關閉一個運作中的容器 (包括程序和所有相關資源);
  • load

    :從一個 tar 包中加載一個鏡像;
  • login

    :注冊或登入到一個 Docker 的倉庫伺服器;
  • logout

    :從 Docker 的倉庫伺服器登出;
  • logs

    :擷取容器的 log 資訊;
  • network

    :管理 Docker 的網絡,包括檢視、建立、删除、挂載、解除安裝等;
  • node

    :管理 swarm 叢集中的節點,包括檢視、更新、删除、提升/取消管理節點等;
  • pause

    :暫停一個容器中的所有程序;
  • port

    :查找一個 nat 到一個私有網口的公共口;
  • ps

    :列出主機上的容器;
  • pull

    :從一個 Docker 的倉庫伺服器下拉一個鏡像或倉庫;
  • push

    :将一個鏡像或者倉庫推送到一個 Docker 的注冊伺服器;
  • rename

    :重命名一個容器;
  • restart

    :重新開機一個運作中的容器;
  • rm

    :删除給定的若幹個容器;
  • rmi

    :删除給定的若幹個鏡像;
  • run

    :建立一個新容器,并在其中運作給定指令;
  • save

    :儲存一個鏡像為 tar 封包件;
  • search

    :在 Docker index 中搜尋一個鏡像;
  • service

    :管理 Docker 所啟動的應用服務,包括建立、更新、删除等;
  • start

    :啟動一個容器;
  • stats

    :監控容器的 CPU 使用率、記憶體使用量、網絡 IO 總量以及磁盤 IO 總量等資訊;
  • stop

    :終止一個運作中的容器;
  • swarm

    :管理 Docker swarm 叢集,包括建立、加入、退出、更新等;
  • tag

    :為一個鏡像打标簽;
  • top

    :檢視一個容器中的正在運作的程序資訊;
  • unpause

    :将一個容器内所有的程序從暫停狀态中恢複;
  • update

    :更新指定的若幹容器的配置資訊;
  • version

    :輸出 Docker 的版本資訊;
  • volume

    :管理 Docker volume,包括檢視、建立、删除等;
  • wait

    :阻塞直到一個容器終止,然後輸出它的退出符。

操作示例

檢視 Docker 版本和系統資訊

無論是在本地還是雲端,我們都需要檢查 Docker 版本和系統資訊,可以使用以下指令找到 Docker 版本:

docker version
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:06:22 2018
OS/Arch: darwin/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:14:32 2018
OS/Arch: linux/amd64
Experimental: true
           

另一個重要指令是 docker info:

docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.03.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
…
           

該指令将顯示部分裝置資訊,比如伺服器版本、存儲驅動程式、核心版本、作業系統、總記憶體等。當嘗試為目前 Docker 安裝啟動新資源或嘗試找出系統級資源配置設定問題時,這些資訊非常有用,這也是檢查運作、停止容器數量及下載下傳鏡像數量的快速方法。

搜尋下載下傳 Docker 鏡像

可以使用 docker search 指令在 Docker Hub 搜尋已有鏡像:

docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 7861 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 190 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK]
neurodebian NeuroDebian provides neuroscience research s… 50 [OK]
…
           

以上對 ubuntu 的搜尋顯示可用鏡像、描述和官方狀态等資訊。如果要下載下傳 ubuntu 鏡像,可以使用 docker pull 指令:

docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
Status: Downloaded newer image for ubuntu:latest
$
           

Docker 鏡像

使用 docker info 指令查找擁有鏡像數量:

docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
…
           

docker images 指令可詳細列出擁有鏡像:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
           

假設下載下傳 NGINX 鏡像,可以運作 docker pull 指令:

docker pull nginx
           

如果檢查 Docker 鏡像,會看到如下内容:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
           

如果尋找 Ubuntu 16.04 版本,可使用 16.04 标簽下載下傳特定版本:

docker pull ubuntu:16.04
           

随後,将出現兩個 Ubuntu 鏡像版本:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               5e8b97a2a082        2 weeks ago         114MB
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
           

注意:無需注冊 Docker Hub 即可提取鏡像。如果想将鏡像推送到 Docker Hub,需要注冊然後使用 docker login 指令登入:

docker login --username=yourhubusername [email protected]
           

運作 Docker 容器

假設想在 docker 上運作 NGINX 伺服器,可運作以下指令:

docker run -p 8080:80 nginx
           

如果已用 run 指令從 Docker Hub 提取 nginx 鏡像建立 NGINX 容器。 -p 8080:80 會告訴 Docker 将 localhost 端口 8080 映射到 Docker 容器端口 80,應該能夠從 http://localhost:8080 通路 NGINX 伺服器。

NGINX 容器已附加到指令行。如果退出指令行,容器将會停止,可使用 detach(’- d)啟動 NGINX 容器,這樣即使退出指令行也可繼續運作。

docker run -p 8080:80 -d nginx
           

以上指令将以分離模式啟動容器并傳回指令行。

docker run

指令格式:

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a, --attach=[] #登入容器(以docker run -d啟動的容器)
-c, --cpu-shares=0 #設定容器CPU權重,在CPU共享場景使用
--cap-add=[] #添權重限,權限清單詳見:http://linux.die.net/man/7/capabilities
--cap-drop=[] #删除權限,權限清單詳見:http://linux.die.net/man/7/capabilities
--cidfile="" #運作容器後,在指定檔案中寫入容器PID值,一種典型的監控系統用法
--cpuset="" #設定容器可以使用哪些CPU,此參數可以用來容器獨占CPU
-d, --detach=false #指定容器運作于前台還是背景
--device=[] #添加主機裝置給容器,相當于裝置直通
--dns=[] #指定容器的dns伺服器
--dns-search=[] #指定容器的dns搜尋域名,寫入到容器的/etc/resolv.conf檔案
-e, --env=[] #指定環境變量,容器中可以使用該環境變量
--entrypoint="" #覆寫image的入口點
--env-file=[] #指定環境變量檔案,檔案格式為每行一個環境變量
--expose=[] #指定容器暴露的端口,即修改鏡像的暴露端口
-h, --hostname="" #指定容器的主機名
-i, --interactive=false #打開STDIN,用于控制台互動
--link=[] #指定容器間的關聯,使用其他容器的IP、env等資訊
--lxc-conf=[] #指定容器的配置檔案,隻有在指定--exec-driver=lxc時使用
-m, --memory="" #指定容器的記憶體上限
--name="" #指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字
--net="bridge" #容器網絡設定,待詳述
-P, --publish-all=false #指定容器暴露的端口,待詳述
-p, --publish=[] #指定容器暴露的端口,待詳述
--privileged=false #指定容器是否為特權容器,特權容器擁有所有的capabilities
--restart="" #指定容器停止後的重新開機政策,待詳述
--rm=false #指定容器停止後自動删除容器(不支援以docker run -d啟動的容器)
--sig-proxy=true #設定由代理接受并處理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
-t, --tty=false #配置設定tty裝置,該可以支援終端登入
-u, --user="" #指定容器的使用者
-v, --volume=[] #給容器挂載存儲卷,挂載到容器的某個目錄
--volumes-from=[] #給容器挂載其他容器上的卷,挂載到容器的某個目錄
-w, --workdir="" #指定容器的工作目錄
           

列出 Docker 容器

docker ps 指令允許查找正在運作的所有容器:

docker ps
CONTAINER ID         IMAGE         COMMAND         CREATED           STATUS          PORTS             NAMES
6162daed25da         nginx  "nginx -g 'daemon of…" 7 minutes ago   Up 7 minutes  0.0.0.0:8080->80/tcp  hardcore_torvalds
           

如上顯示容器的各種屬性,可以看到是從 nginx 鏡像建立并顯示端口轉發資訊。CONTAINER ID 和 NAMES 屬性需要特别提及,可以使用上述兩大屬性唯一辨別容器。二者都可自動生成,但也可在容器建立過程中為容器命名。 建立一個名為 my_nginx 的 NGINX 容器:

docker run --name my_nginx -p 8888:80 -d nginx
           

再次列出所有 Docker 容器:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
e7b19b6ad778        nginx               "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:8888->80/tcp   my_nginx
6162daed25da        nginx               "nginx -g 'daemon of…"   15 minutes ago       Up 16 minutes       0.0.0.0:8080->80/tcp   hardcore_torvalds
           

請注意,新容器的名稱為“my_nginx”。 處理大量容器時,可以使用命名約定,這可以更好得組織容器。 docker ps 指令僅顯示正在運作的容器。如果對上述情況使用 docker info 指令:

docker info
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 3
           

可以看到有兩個容器正在運作,如果一個暫停或已停止,則不會僅使用 docker ps 指令檢視這些容器,必須使用 all( - a)選項:

docker ps -a
           

啟動,停止,重新開機和殺死容器

假設要停止’my_nginx’容器,可使用 CONTAINER ID 或 NAME。

docker stop my_nginx
my_nginx
           

列出 Docker 容器:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
6162daed25da        nginx               "nginx -g 'daemon of…"   27 minutes ago      Up 27 minutes       0.0.0.0:8080->80/tcp   hardcore_torvalds
docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS                  NAMES
e7b19b6ad778        nginx               "nginx -g 'daemon of…"   12 minutes ago      Exited (0) About a minute ago                          my_nginx
6162daed25da        nginx               "nginx -g 'daemon of…"   27 minutes ago      Up 27 minutes                   0.0.0.0:8080->80/tcp   hardcore_torvalds
           

如果在沒有 -a 選項的情況下運作 docker ps,隻顯示正在運作的容器。在第二種情況下,可以看到’my_nginx’容器處于退出狀态。

讓我們 docker start 容器:

docker start my_nginx
my_nginx
           

檢查 Docker 容器清單:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
e7b19b6ad778        nginx               "nginx -g 'daemon of…"   16 minutes ago      Up 29 seconds       0.0.0.0:8888->80/tcp   my_nginx
6162daed25da        nginx               "nginx -g 'daemon of…"   30 minutes ago      Up 30 minutes       0.0.0.0:8080->80/tcp   hardcore_torvalds
           

可以看到 STATUS 顯示容器’my_nginx’再次被啟動。 如果由于某些問題而需重新開機容器,則可使用 restart 指令,這比單獨停止和啟動容器速度更快:

docker restart my_nginx
           

可以像程序一樣終止 docker 容器,比如終止 my_nginx 容器:

docker kill my_nginx
           

再次列出 Docker 容器:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                  NAMES
e7b19b6ad778        nginx               "nginx -g 'daemon of…"   22 minutes ago      Exited (137) 7 seconds ago                          my_nginx
6162daed25da        nginx               "nginx -g 'daemon of…"   36 minutes ago      Up 36 minutes                0.0.0.0:8080->80/tcp   hardcore_torvalds
           

容器 my_nginx 未運作。此外,可在資訊中看到一個正在運作的容器和一個已停止容器:

docker info
Containers: 2
Running: 1
Paused: 0
Stopped: 1
Images: 3
…
           

Docker Exec Bash 和 Docker SSH

如果需要與 shell 進行互動以建立服務或解決問題,可以使用 docker exec 指令建立互動式 shell。比如,用 bash shell 從 ubuntu 鏡像啟動一個容器:

docker run --name my_ubuntu -it ubuntu:latest bash
[email protected]:/#
           

root @haracle#表示位于 Docker 容器的 bash shell 中,可以運作 shell 指令:

[email protected]:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[email protected]:/# pwd
/
           

列出 Docker 容器:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
a19c770b8621        ubuntu:latest       "bash"                   About a minute ago   Up About a minute                          my_ubuntu
6162daed25da        nginx               "nginx -g 'daemon of…"   About an hour ago    Up About an hour    0.0.0.0:8080->80/tcp   hardcore_torvalds
           

如上,my_ubuntu 正在運作。假設想将 Docker ssh 放入’my_ubuntu’容器中,可以使用 docker exec bash:

docker exec -it my_ubuntu bash
[email protected]:/#
           

使用 docker exec 向容器發出指令。例如,可以直接用指令提示符在 my_ubuntu 容器上運作 ls 指令:

docker exec -it my_ubuntu ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
           

以分離模式啟動容器并 attach

以上示例用附加模式啟動 ubuntu 容器,我們也可在分離模式下啟動:

docker run -it -d --name my_ubuntu_2 ubuntu:latest bash
75b28b7208359137b3e1dc2843387918e28b4c6c4860ef0cdeac79c205f5cbc4
           

驗證容器是否正在運作:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
75b28b720835        ubuntu:latest       "bash"                   3 minutes ago       Up 3 minutes                               my_ubuntu_2
a19c770b8621        ubuntu:latest       "bash"                   15 minutes ago      Up 15 minutes                              my_ubuntu
6162daed25da        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          0.0.0.0:8080->80/tcp   hardcore_torvalds
           

使用 docker attach 指令擷取 docker exec bash-like 效果:

docker attach my_ubuntu_2
[email protected]:/#
           

檢查 Docker 鏡像曆史

Docker 社群鏡像是分層建立的,可使用 Docker history 指令檢視鏡像建立方式。先看看有哪些鏡像:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               5e8b97a2a082        2 weeks ago         114MB
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
           

檢視 nginx 鏡像曆史:

docker history nginx
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
cd5239a0906a        2 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
<missing>           2 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL [SIGTERM]         0B
<missing>           2 weeks ago         /bin/sh -c #(nop)  EXPOSE 80/tcp                0B
<missing>           2 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B
<missing>           2 weeks ago         /bin/sh -c set -x  && apt-get update  && apt…   53.7MB
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=1.15.0.0.…   0B
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.15.0-…   0B
<missing>           7 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
<missing>           8 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B
<missing>           8 weeks ago         /bin/sh -c #(nop) ADD file:ec5be7eec56a74975…   55.3MB
           

使用鏡像曆史指令查找最近更改,如果在新版本鏡像中發現問題,則此指令可幫助找到原因,也可用以下指令:

docker image history nginx
           

Docker 檢查容器

可以使用 docker inspect 指令查找有關系統的資訊,運作 docker ps 指令列出 Docker 容器:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
6162daed25da        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          0.0.0.0:8080->80/tcp   hardcore_torvalds
           

使用 CONTAINER ID 檢查容器(也可使用容器名稱):

docker inspect 6162daed25da
[
{
"Id": "6162daed25da50b98afca5f7ed8caca2289bf309b2547d87ae8674b899d604a4",
"Created": "2018-06-25T05:46:37.902211302Z",
"Path": "nginx",
"Args": [
…
…
…
"DriverOpts": null
}
}
}
}
]
           

該指令将以 JSON 格式提供大量資訊,以下是查找容器 IP 位址的技巧:

docker inspect 6162daed25da | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
           

容器與主機間檔案複制

再次列出 Docker 容器:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
6162daed25da        nginx               "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:8080->80/tcp   hardcore_torvalds
           

NGINX 容器在端口 8080 上運作。是以,如果轉到 http//localhost:8080,将看到以下内容:

"Welcome to nginx!"
           

如果看到此頁面,則 nginx Web 伺服器已成功安裝并正常運作,需要進一步配置。 首先,在本地目錄中建立 index.html:

<html>
  <header><title>My Website</title></header>
  <body>
    Hello world
  </body>
</html>
           

使用帶有 ls 的 docker exec 指令檢查 NGINX 容器中具有 index.html 的檔案夾:

docker exec -it hardcore_torvalds ls /usr/share/nginx/html
50x.html index.html
           

使用建立的本地檔案覆寫容器 index.html 檔案:

docker cp index.html hardcore_torvalds:usr/share/nginx/html/
           

如果再次檢查http://localhost:8080,應該可以看到問候語“Hello world”。 可使用 docker cp 指令在本地計算機和建立容器間移動檔案,此方法可用于覆寫配置檔案。

建立 Docker 鏡像

如果想複制更多“Hello World”容器,必須将目前容器儲存為鏡像。 首先,停止容器:

docker stop hardcore_torvalds
           

列出所有 Docker 容器:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
75b28b720835        ubuntu:latest       "bash"                   About an hour ago   Exited (0) About an hour ago                       my_ubuntu_2
a19c770b8621        ubuntu:latest       "bash"                   2 hours ago         Exited (0) About an hour ago                       my_ubuntu
6162daed25da        nginx               "nginx -g 'daemon of…"   3 hours ago         Exited (0) 27 seconds ago                          hardcore_torvalds
           

從 STATUS 中,可以看到 NGINX’corecore_torvalds’容器已停止。使用 docker commit 指令建立新鏡像:

docker commit 6162daed25da nginx_hello_world_template
sha256:117d060587a316035ed5a776e613d9cfbeee9fbfe202c6edc9203820c7da987b
           

如果現在檢查,将看到新鏡像:

docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
nginx_hello_world_template   latest              117d060587a3        40 seconds ago      109MB
ubuntu                       16.04               5e8b97a2a082        2 weeks ago         114MB
ubuntu                       latest              113a43faa138        2 weeks ago         81.2MB
nginx                        latest              cd5239a0906a        2 weeks ago         109MB
           

可以使用此鏡像并啟動新 Docker 容器,新建立容器将具有“Hello world”頁面,而不是“Welcome NGINX”頁面。示例如下:

docker run -it -d -p 8886:80 nginx_hello_world_template
4e042d76c39125471951626ba42cd609a65c73f041943298f74f4fc43dc5596a
$
           

删除 Docker 容器和鏡像

Docker 容器和鏡像會占用硬碟空間,是以最好定期清理。首先停止所有容器,然後列出所有容器,使用以下 Docker 指令執行操作:

docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                         PORTS               NAMES
4e042d76c391        nginx_hello_world_template   "nginx -g 'daemon of…"   2 minutes ago       Exited (0) 8 seconds ago                           boring_keldysh
75b28b720835        ubuntu:latest                "bash"                   2 hours ago         Exited (0) About an hour ago                       my_ubuntu_2
a19c770b8621        ubuntu:latest                "bash"                   2 hours ago         Exited (0) About an hour ago                       my_ubuntu
6162daed25da        nginx                        "nginx -g 'daemon of…"   3 hours ago         Exited (0) 11 minutes ago                          hardcore_torvalds
           

如上,有 4 個處于停止狀态的容器,可使用 docker rm 指令删除容器:

docker rm 4e042d76c391 75b28b720835 a19c770b8621 6162daed25da
4e042d76c391
75b28b720835
a19c770b8621
6162daed25da
           

可使用 NAMES 代替 CONTAINER ID,容器清單現在應該是幹淨的:

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
           

列出 Docker 鏡像:

docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
nginx_hello_world_template   latest              117d060587a3        11 minutes ago      109MB
ubuntu                       16.04               5e8b97a2a082        2 weeks ago         114MB
ubuntu                       latest              113a43faa138        2 weeks ago         81.2MB
nginx                        latest              cd5239a0906a        2 weeks ago         109MB
           

可使用 docker rmi 指令和 IMAGE ID 删除 docker 鏡像:

docker rmi 117d060587a3 5e8b97a2a082 113a43faa138 cd5239a0906a
           

最後,Docker 鏡像清單應該是幹淨的:

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
           

參考

  • Top Docker Commands Any Expert Should Know
  • 官方文檔:Docker CLI reference

相關文章

  • 上一篇:Docker必知必會系列(八):Kubernetes 入門實踐
  • 下一篇:Docker必知必會系列(附錄2):Dockerfile 參考及最佳實踐

繼續閱讀