docker命令學習(二)

上次只是給大家把命令的作用以及簡單使用列出來了(大家可以查看:docker命令總結(一)),那這篇文章會詳細介紹每條命令的參數

search

docker search:此命令是用來在倉庫中查找docker鏡像

語法:

docker search 參數 鏡像名稱:tag(版本)

參數說明:

--filter,-f:根據相關條件過濾輸出
--format:使用Go模板進行漂亮的打印搜索
--limit:指定最大搜索結果,默認25個
--no-trunc:顯示完整的鏡像描述
--stars,-s:列出收藏數不小於指定值的鏡像
--automated:僅顯示自動構建的鏡像

示例:

默認搜索

ubuntu@VM-101-242-ubuntu:~$ sudo docker search nginx
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                             Official build of Nginx.                        12438               [OK]                
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   1713                                    [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   750                                     [OK]
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   84                                      
bitnami/nginx                     Bitnami nginx Docker Image                      75                                      [OK]
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   60                                      [OK]
nginxdemos/hello                  NGINX webserver that serves a simple page co…   35                                      [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   34                                      
nginx/unit                        NGINX Unit is a dynamic web and application …   33                                      
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        31                                      [OK]
nginx/nginx-ingress               NGINX Ingress Controller for Kubernetes         22                                      
privatebin/nginx-fpm-alpine       PrivateBin running on an Nginx, php-fpm & Al…   19                                      [OK]
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   17                                      [OK]
blacklabelops/nginx               Dockerized Nginx Reverse Proxy Server.          12                                      [OK]
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   12                                      
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  12                                      
centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   11                                      
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter                       9                                       
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   6                                       [OK]
mailu/nginx                       Mailu nginx frontend                            5                                       [OK]
1science/nginx                    Nginx Docker images that include Consul Temp…   5                                       [OK]
pebbletech/nginx-proxy            nginx-proxy sets up a container running ngin…   2                                       [OK]
ansibleplaybookbundle/nginx-apb   An APB to deploy NGINX                          1                                       [OK]
centos/nginx-110-centos7          Platform for running nginx 1.10 or building …   0                                       
wodby/nginx                       Generic nginx                                   0                                       [OK]
ubuntu@VM-101-242-ubuntu:~$ 

搜索收藏數大於10的nginx鏡像,並顯示詳細信息

ubuntu@VM-101-242-ubuntu:~$ sudo docker search --stars=10 --no-trunc nginx
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                          DESCRIPTION                                                                                            STARS               OFFICIAL            AUTOMATED
nginx                         Official build of Nginx.                                                                               12438               [OK]                
jwilder/nginx-proxy           Automated Nginx reverse proxy for docker containers                                                    1713                                    [OK]
richarvey/nginx-php-fpm       Container running Nginx + PHP-FPM capable of pulling application code from git                         750                                     [OK]
linuxserver/nginx             An Nginx container, brought to you by LinuxServer.io.                                                  84                                      
bitnami/nginx                 Bitnami nginx Docker Image                                                                             75                                      [OK]
tiangolo/nginx-rtmp           Docker image with Nginx using the nginx-rtmp-module module for live multimedia (video) streaming.      60                                      [OK]
nginxdemos/hello              NGINX webserver that serves a simple page containing its hostname, IP address and port ...             35                                      [OK]
jc21/nginx-proxy-manager      Docker container for managing Nginx proxy hosts with a simple, powerful interface                      34                                      
nginx/unit                    NGINX Unit is a dynamic web and application server designed to run applications in various languages   33                                      
jlesage/nginx-proxy-manager   Docker container for Nginx Proxy Manager                                                               31                                      [OK]
nginx/nginx-ingress           NGINX Ingress Controller for Kubernetes                                                                22                                      
privatebin/nginx-fpm-alpine   PrivateBin running on an Nginx, php-fpm & Alpine Linux stack                                           19                                      [OK]
schmunk42/nginx-redirect      A very simple container to redirect HTTP traffic to another server, based on nginx                     17                                      [OK]
centos/nginx-18-centos7       Platform for running nginx 1.8 or building nginx-based application                                     12                                      
nginxinc/nginx-unprivileged   Unprivileged NGINX Dockerfiles                                                                         12                                      
blacklabelops/nginx           Dockerized Nginx Reverse Proxy Server.                                                                 12                                      [OK]
centos/nginx-112-centos7      Platform for running nginx 1.12 or building nginx-based application                                    11                                      
ubuntu@VM-101-242-ubuntu:~$ 

使用條件查找收藏數大於10的nginx鏡像

ubuntu@VM-101-242-ubuntu:~$ sudo docker search --filter stars=3 nginx
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                             Official build of Nginx.                        12438               [OK]                
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   1713                                    [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   750                                     [OK]
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   84                                      
bitnami/nginx                     Bitnami nginx Docker Image                      75                                      [OK]
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   60                                      [OK]
nginxdemos/hello                  NGINX webserver that serves a simple page co…   35                                      [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   34                                      
nginx/unit                        NGINX Unit is a dynamic web and application …   33                                      
jlesage/nginx-proxy-manager       Docker container for Nginx Proxy Manager        31                                      [OK]
nginx/nginx-ingress               NGINX Ingress Controller for Kubernetes         22                                      
privatebin/nginx-fpm-alpine       PrivateBin running on an Nginx, php-fpm & Al…   19                                      [OK]
schmunk42/nginx-redirect          A very simple container to redirect HTTP tra…   17                                      [OK]
centos/nginx-18-centos7           Platform for running nginx 1.8 or building n…   12                                      
blacklabelops/nginx               Dockerized Nginx Reverse Proxy Server.          12                                      [OK]
nginxinc/nginx-unprivileged       Unprivileged NGINX Dockerfiles                  12                                      
centos/nginx-112-centos7          Platform for running nginx 1.12 or building …   11                                      
nginx/nginx-prometheus-exporter   NGINX Prometheus Exporter                       9                                       
sophos/nginx-vts-exporter         Simple server that scrapes Nginx vts stats a…   6                                       [OK]
mailu/nginx                       Mailu nginx frontend                            5                                       [OK]
1science/nginx                    Nginx Docker images that include Consul Temp…   5                                       [OK]
ubuntu@VM-101-242-ubuntu:~$ 

pull

從docker倉庫下載鏡像到本地

語法

docker pull 鏡像名稱:tag(版本)

參數說明

-a, --all-tags:下載所有版本的鏡像
-q, --quiet:不顯示詳細信息
--disable-content-trust:不對下載的鏡像進行校驗
--platform:指定下載鏡像服務器的平臺信息

示例

下載nginx默認版本的docker鏡像

ubuntu@VM-35-226-ubuntu:~$ sudo docker pull nginx:latest
latest: Pulling from library/nginx
8ec398bc0356: Pull complete 
465560073b6f: Pull complete 
f473f9fd0a8c: Pull complete 
Digest: sha256:b2d89d0a210398b4d1120b3e3a7672c16a4ba09c2c4a0395f18b9f7999b768f2
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
ubuntu@VM-35-226-ubuntu:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        9 days ago          126MB
ubuntu@VM-35-226-ubuntu:~$ 

push

推送指定鏡像到docker鏡像服務器

語法

docker push 本地鏡像:tag(版本)

參數說明

--disable-content-trust:不對鏡像進行校驗

示例

docker push blxt:5000/blxt/nginx 上傳nginx到私有倉庫

images

查看本地所有docker鏡像

語法

docker images 參數 鏡像:tag(版本)

參數說明

-a, --all:列出本地所有鏡像
--digests:顯示鏡像簡單信息說明
-f, --filter:根據相關條件過濾輸出
--format:使用Go模板進行漂亮的打印搜索
--no-trunc:顯示鏡像的完整信息
-q, --quiet:只顯示鏡像ID

示例

查看本地所有鏡像

ubuntu@VM-35-226-ubuntu:~$ sudo docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        9 days ago          126MB
ubuntu@VM-35-226-ubuntu:~$ 

查看鏡像詳細信息

ubuntu@VM-35-226-ubuntu:~$ sudo docker images --no-trunc nginx:latest
REPOSITORY          TAG                 IMAGE ID                                                                  CREATED             SIZE
nginx               latest              sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657   9 days ago          126MB
ubuntu@VM-35-226-ubuntu:~$ 

查看鏡像ID

ubuntu@VM-35-226-ubuntu:~$ sudo docker images -q nginx:latest
f7bb5701a33c
ubuntu@VM-35-226-ubuntu:~$ 

run

創建容器,並運行

語法

docker run 參數 鏡像:tag(版本)

參數說明

-a, --attach:   指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項
-d:     容器將在後臺運行
-t:     給容器分配tty終端
--sig-proxy=true:   將所有接收到的信號代理到進程(僅限非TTY模式)
-i:     以交互模式運行容器
--name:     給容器設置名稱
--dns:      爲容器設置自定義dns服務器
--dns-search:   指定DNS搜索域名
--network:      爲容器指定網卡
--network-alias:        爲容器的網卡設置別名
--add-host:     在容器的hosts文件中添加記錄
--mac-address:      設置容器的MAC地址
--ip:       設置容器的IPV4地址
--ip6:      設置容器IPV6地址
--link-local-ip:        設置一個或多個容器的以太網設備的鏈接本地IPv4/IPv6地址
--rm:       容器退出時自動刪除容器
-m, --memory:       設置容器內存大小,最小4M
--memory-swap:      設置容器的總內存大小,包含交換分區
-c, --cpu-shares:       設置cpu
--cpus:     設置cpu數量
--entrypoint:   在容器運行時執行的默認命令
--expose:       設置端口映射
-P:         將容器中所有端口映射到宿主機
-p:         將容器的某個端口映射到宿主機
--link:     將鏈接添加到另外一個容器
-v, --volume:       將宿主機的文件掛載到容器中
--volumes-from:     將宿主機的所有文件系統掛載到容器
-u,--user:      設置所使用的用戶名或UID以及指定命令的可選組名或GID
-h:     指定容器主機名稱
-e:     設置環境變量
--env-file:     從指定文件中導入變量
參數還有很多,這裏就不一一列舉了,上面是常用的參數

示例

後臺運行nginx容器,並取名爲nginx

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -d --name nginx nginx:latest
06a913a442f9729e284b1a0628e5ce46561f81c6e8777f91d184f10de079cb55
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
06a913a442f9        nginx:latest        "nginx -g 'daemon of…"   18 seconds ago      Up 15 seconds       80/tcp              nginx
ubuntu@VM-35-226-ubuntu:~$ 

後臺運行nginx容器,並映射容器80端口到宿主機的80端口

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -d --name nginx -p 80:80 nginx:latest
c026ee7e0c9477c15ac42965ed19af92b6017e7bcce079fd450f8cee5f2d9de6
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
c026ee7e0c94        nginx:latest        "nginx -g 'daemon of…"   8 seconds ago       Up 6 seconds        0.0.0.0:80->80/tcp   nginx
ubuntu@VM-35-226-ubuntu:~$ sudo curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
ubuntu@VM-35-226-ubuntu:~$ 

創建nginx容器,並進行交互式啓動

ubuntu@VM-35-226-ubuntu:~$ sudo docker run -it --name nginx nginx:latest /bin/bash
root@4a518f4a2a01:/# 

history

查看鏡像形成過程

語法

docker history 參數 鏡像:tag(版本)

參數

--format:使用Go模板進行漂亮的打印搜索
-H, --human:以可讀格式打印大小和日期(默認爲true)
--no-trunc:顯示形成詳細信息
-q, --quiet:只顯示鏡像ID

示例

默認使用方法

ubuntu@VM-35-226-ubuntu:~$ sudo docker history nginx:latest
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
f7bb5701a33c        9 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  EXPOSE 80                    0B                  
<missing>           9 days ago          /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B                 
<missing>           9 days ago          /bin/sh -c set -x     && addgroup --system -…   57.1MB              
<missing>           9 days ago          /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster     0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  ENV NJS_VERSION=0.3.7        0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  ENV NGINX_VERSION=1.17.6     0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B                  
<missing>           10 days ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           10 days ago         /bin/sh -c #(nop) ADD file:04caaf303199c81ff…   69.2MB              
ubuntu@VM-35-226-ubuntu:~$ 

只打印鏡像ID

ubuntu@VM-35-226-ubuntu:~$ sudo docker history -q nginx:latest
f7bb5701a33c
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
ubuntu@VM-35-226-ubuntu:~$ 

顯示鏡像形成的詳細信息

ubuntu@VM-35-226-ubuntu:~$ sudo docker history --no-trunc nginx
IMAGE                                                                     CREATED             CREATED BY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      SIZE                COMMENT
sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657   9 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon off;"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  STOPSIGNAL SIGTERM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  EXPOSE 80                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    0B                  
<missing>                                                                 9 days ago          /bin/sh -c ln -sf /dev/stdout /var/log/nginx/access.log     && ln -sf /dev/stderr /var/log/nginx/error.log                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      22B                 
<missing>                                                                 9 days ago          /bin/sh -c set -x     && addgroup --system --gid 101 nginx     && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx     && apt-get update     && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates     &&     NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62;     found='';     for server in         ha.pool.sks-keyservers.net         hkp://keyserver.ubuntu.com:80         hkp://p80.pool.sks-keyservers.net:80         pgp.mit.edu     ; do         echo "Fetching GPG key $NGINX_GPGKEY from $server";         apt-key adv --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break;     done;     test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1;     apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/*     && dpkgArch="$(dpkg --print-architecture)"     && nginxPackages="         nginx=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-xslt=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-geoip=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-image-filter=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-njs=${NGINX_VERSION}.${NJS_VERSION}-${PKG_RELEASE}     "     && case "$dpkgArch" in         amd64|i386)             echo "deb https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list             && apt-get update             ;;         *)             echo "deb-src https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list                         && tempDir="$(mktemp -d)"             && chmod 777 "$tempDir"                         && savedAptMark="$(apt-mark showmanual)"                         && apt-get update             && apt-get build-dep -y $nginxPackages             && (                 cd "$tempDir"                 && DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)"                     apt-get source --compile $nginxPackages             )                         && apt-mark showmanual | xargs apt-mark auto > /dev/null             && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; }                         && ls -lAFh "$tempDir"             && ( cd "$tempDir" && dpkg-scanpackages . > Packages )             && grep '^Package: ' "$tempDir/Packages"             && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list             && apt-get -o Acquire::GzipIndexes=false update             ;;     esac         && apt-get install --no-install-recommends --no-install-suggests -y                         $nginxPackages                         gettext-base     && apt-get remove --purge --auto-remove -y ca-certificates && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list         && if [ -n "$tempDir" ]; then         apt-get purge -y --auto-remove         && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list;     fi   57.1MB              
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV NJS_VERSION=0.3.7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV NGINX_VERSION=1.17.6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ubuntu@VM-35-226-ubuntu:~$ sudo docker history --no-trunc nginx:latest
IMAGE                                                                     CREATED             CREATED BY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      SIZE                COMMENT
sha256:f7bb5701a33c0e572ed06ca554edca1bee96cbbc1f76f3b01c985de7e19d0657   9 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon off;"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  STOPSIGNAL SIGTERM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  EXPOSE 80                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    0B                  
<missing>                                                                 9 days ago          /bin/sh -c ln -sf /dev/stdout /var/log/nginx/access.log     && ln -sf /dev/stderr /var/log/nginx/error.log                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      22B                 
<missing>                                                                 9 days ago          /bin/sh -c set -x     && addgroup --system --gid 101 nginx     && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx     && apt-get update     && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates     &&     NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62;     found='';     for server in         ha.pool.sks-keyservers.net         hkp://keyserver.ubuntu.com:80         hkp://p80.pool.sks-keyservers.net:80         pgp.mit.edu     ; do         echo "Fetching GPG key $NGINX_GPGKEY from $server";         apt-key adv --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break;     done;     test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1;     apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/*     && dpkgArch="$(dpkg --print-architecture)"     && nginxPackages="         nginx=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-xslt=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-geoip=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-image-filter=${NGINX_VERSION}-${PKG_RELEASE}         nginx-module-njs=${NGINX_VERSION}.${NJS_VERSION}-${PKG_RELEASE}     "     && case "$dpkgArch" in         amd64|i386)             echo "deb https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list             && apt-get update             ;;         *)             echo "deb-src https://nginx.org/packages/mainline/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list                         && tempDir="$(mktemp -d)"             && chmod 777 "$tempDir"                         && savedAptMark="$(apt-mark showmanual)"                         && apt-get update             && apt-get build-dep -y $nginxPackages             && (                 cd "$tempDir"                 && DEB_BUILD_OPTIONS="nocheck parallel=$(nproc)"                     apt-get source --compile $nginxPackages             )                         && apt-mark showmanual | xargs apt-mark auto > /dev/null             && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; }                         && ls -lAFh "$tempDir"             && ( cd "$tempDir" && dpkg-scanpackages . > Packages )             && grep '^Package: ' "$tempDir/Packages"             && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list             && apt-get -o Acquire::GzipIndexes=false update             ;;     esac         && apt-get install --no-install-recommends --no-install-suggests -y                         $nginxPackages                         gettext-base     && apt-get remove --purge --auto-remove -y ca-certificates && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list         && if [ -n "$tempDir" ]; then         apt-get purge -y --auto-remove         && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list;     fi   57.1MB              
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV NJS_VERSION=0.3.7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  ENV NGINX_VERSION=1.17.6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     0B                  
<missing>                                                                 9 days ago          /bin/sh -c #(nop)  LABEL maintainer=NGINX Docker Maintainers <[email protected]>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           0B                  
<missing>                                                                 10 days ago         /bin/sh -c #(nop)  CMD ["bash"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 0B                  
<missing>                                                                 10 days ago         /bin/sh -c #(nop) ADD file:04caaf303199c81ff1a94e2e39d5096f9d02b73294b82758e5bc6e23aff94272 in /                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                69.2MB              
ubuntu@VM-35-226-ubuntu:~$ 

start

啓動容器

語法

docker start 參數 容器ID/容器名稱

參數說明

-a, --attach:附加STDOUT/STDERR和轉發信號
--checkpoint:從快照進行還原 
--checkpoint-dir:使用自定義檢查點存儲目錄
--detach-keys:重寫用於分離容器的鍵序列
-i, --interactive:附加容器的STDIN

示例

啓動使用create創建的nginx容器

ubuntu@VM-35-226-ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
8b9053318855        nginx:latest        "nginx -g 'daemon of…"   9 seconds ago       Created                                 admiring_rhodes
ubuntu@VM-35-226-ubuntu:~$ sudo docker start 8b9053318855 
8b9053318855
ubuntu@VM-35-226-ubuntu:~$ sudo docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
8b9053318855        nginx:latest        "nginx -g 'daemon of…"   40 seconds ago      Up 7 seconds        80/tcp              admiring_rhodes
ubuntu@VM-35-226-ubuntu:~$ 

stop

關閉容器

語法

docker stop 參數 容器ID/容器名稱

參數說明

--time , -t:在多少時間後關閉容器

示例

默認使用方法

ubuntu@VM-121-163-ubuntu:~$ sudo docker run -d --name nginx nginx:latest
4c1e4ab3cfdcb7c5c55052238525e79bb82c0b5cf70b18420520ec2884669272
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
4c1e4ab3cfdc        nginx:latest        "nginx -g 'daemon of…"   7 seconds ago       Up 5 seconds        80/tcp              nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker stop nginx
nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
4c1e4ab3cfdc        nginx:latest        "nginx -g 'daemon of…"   26 seconds ago      Exited (0) 5 seconds ago                       nginx
ubuntu@VM-121-163-ubuntu:~$ 

build

通過dockerfile製作鏡像

語法

docker build 參數 路徑

參數說明

--build-arg:設置創建時的變量
--cgroup-parent:容器的可選父cgroup
--compress:使用gzip壓縮構建上下文
--cpu-shares :設置 cpu 使用權重
--cpu-period :限制 CPU CFS週期
--cpu-quota :限制 CPU CFS配額
--cpuset-cpus :指定使用的CPU id
--cpuset-mems :指定使用的內存 id
--disable-content-trus:跳過鏡像驗證
--file , -f:指定dockerfile的名稱,默認爲dockerfile
--force-rm:始終移除中間容器
--iidfile:將鏡像ID寫入文件
--isolation:使用容器隔離
--label:爲鏡像設置元數據
--memory , -m:設置內存限制
--memory-swap:設置總內存,包含交換內存
--network:設置鏡像網絡信息
--no-cache:構建鏡像不使用緩存
--output , -o:設置鏡像生成位置
--pull:始終嘗試提取圖像的較新版本
--quiet , -q:   禁止生成輸出併成功打印圖像ID
--rm:成功構建後刪除中間容器
--tag, -t: 鏡像的名字及標籤
--ulimit :Ulimit配置
--shm-size :設置/dev/shm的大小,默認值是64M

示例

使用當前目錄下的dockerfile製作nginx:V1鏡像

docker build -t nginx:V1 .

創建nginx:V2鏡像,使用非當前目錄下的dockerfile

docker build -t nginx:V2 -f /opt/dockerfile

添加其他主機到容器文件中

docker build --add-host=docker:1.1.1.1 .

使用參數--squash創建名爲test:1的鏡像

docker build --squash -t test:1  .

attach

當前shell連接運行容器

語法

docker attach 參數 容器ID/容器名稱

參數

--detach-keys:  覆蓋分離容器的鍵序列
--no-stdin:不要附上STDIN
--sig-proxy:代理所有接收到的信號到進程

示例

默認使用方法

ubuntu@VM-121-163-ubuntu:~$ sudo docker run -d --name ubuntu ubuntu /usr/bin/top -b
98c3f0964ad3a38e360867941a5510cd77e164a835be5b9b69aa47d3d5ceed17
ubuntu@VM-121-163-ubuntu:~$ sudo docker attach ubuntu
top - 08:24:58 up  1:12,  0 users,  load average: 0.04, 0.06, 0.01
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.7 sy,  0.0 ni, 96.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   885080 total,   149760 free,   231524 used,   503796 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   499100 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0   36480   3100   2748 R  0.0  0.4   0:00.19 top

top - 08:25:01 up  1:12,  0 users,  load average: 0.04, 0.06, 0.01
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  0.7 sy,  0.0 ni, 98.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   885080 total,   151252 free,   230048 used,   503780 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   500588 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0   36480   3100   2748 R  0.0  0.4   0:00.19 top

top - 08:25:04 up  1:13,  0 users,  load average: 0.04, 0.06, 0.01
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.3 us,  1.0 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   885080 total,   151264 free,   230016 used,   503800 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   500616 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1 root      20   0   36480   3100   2748 R  0.0  0.4   0:00.19 top

您可以看到該bash 過程返回的退出代碼也由docker attach命令返回給其調用者

ubuntu@VM-121-163-ubuntu:~$ sudo docker run --name ubuntu -d -it ubuntu
9ac7802feb2b77bb905bc9f4c5ca9782e6800fc995b1f2b39da78239d86a7405
ubuntu@VM-121-163-ubuntu:~$ sudo docker attach ubuntu
root@9ac7802feb2b:/# 
root@9ac7802feb2b:/# 

commit

保存當前容器爲鏡像/快照

語法

docker commit 容器名稱/容器ID 鏡像名:tag(版本)

示例

ubuntu@VM-121-163-ubuntu:~$ sudo docker images      //查看鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        9 days ago          126MB
ubuntu              latest              549b9b86cb8d        2 weeks ago         64.2MB
ubuntu@VM-121-163-ubuntu:~$ sudo docker run -itd --name nginx nginx:latest      //創建容器
9566c54f3883b0a3b2f92dc94eb8520772d5d05826d7025be23212768f4d7967
ubuntu@VM-121-163-ubuntu:~$ sudo docker ps -a       //查看容器狀態
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9566c54f3883        nginx:latest        "nginx -g 'daemon of…"   11 seconds ago      Up 9 seconds        80/tcp              nginx
ubuntu@VM-121-163-ubuntu:~$ sudo docker commit nginx nginx:V1       //生成快照
sha256:e091997549ff02cf6309d6146b7626c6efef6dd9ce598c632f6bf0f4d090978c
ubuntu@VM-121-163-ubuntu:~$ sudo docker images      //查看鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               V1                  e091997549ff        22 seconds ago      126MB
nginx               latest              f7bb5701a33c        9 days ago          126MB
ubuntu              latest              549b9b86cb8d        2 weeks ago         64.2MB
ubuntu@VM-121-163-ubuntu:~$ 

cp

容器與宿主機互相複製文件

語法

docker cp 容器ID/容器名:文件路徑 宿主機路徑       複製容器中文件到宿主機
docker cp 宿主機路徑 容器ID/容器名:文件存儲路徑     複製宿主機文件到容器

參數說明

 -a, --archive:複製文件同時複製文件用戶信息
 -L, --follow-link:保持源目標中的鏈接

示例

複製宿主機文件到容器的根目錄中

root@test:/jia/test# docker run -d --name nginx nginx:latest    //創建並運行nginx容器
33b6339003ef41fd62b909fd79e9056d53d944b3172f0f02fc717fd64a2648e3
root@test:/jia/test# docker exec nginx ls /         //列出容器根目錄
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
root@test:/jia/test# docker cp test nginx:/     //複製文件到容器
root@test:/jia/test# docker exec nginx ls /     //列出容器根目錄
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
test
tmp
usr
var

從容器中複製文件到宿主目錄

root@test:/jia/test# ls         //列出目錄
root@test:/jia/test# docker cp nginx:/test .        //複製容器中文件到當前目錄
root@test:/jia/test# ls         //列出目錄
test
root@test:/jia/test# 

create

創建容器但不啓動容器

語法

docker create 參數 鏡像:tag(版本)

參數說明

--add-host:         在容器的hosts文件中添加記錄    
-a, --attach:       指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項
--cap-add:      添加linux功能
--cap-drop:     刪除linux功能
--cidfile:      將容器ID寫入文件
-c, --cpu-shares:       設置cpu
--device:       將主機設備添加到容器
--disable-content-trus:     不對鏡像進行驗證
--dns:      爲容器設置自定義dns服務器‘
--dns-opt:      設置DNS選項
--dns-search:       指定DNS搜索域名
--domainname:       設置容器域名
--env , -e:     設置環境變量
--env-file:     讀取變量文件進行設置容器變量
--expose:       設置端口映射
--hostname , -h:        設置容器主機名
--init:     在容器內運行一個初始化程序,以轉發信號並獲取進程
--ip:       設置容器的IPV4地址
--ip6:      設置容器IPV6地址
--isolation:        使用隔離技術
--link:     將鏈接添加到宿主機,也就是創建軟連接
--link-local-ip:        設置容器本地地址
--mac-address:      設置容器MAC地址
--memory , -m:      設置內存
--memory-swap:      設置總內存大小,包含交換內存
--mount:        掛載文件系統
--name:     設置容器名稱
--net:      將容器鏈接網絡
--net-alias:        爲容器網絡起別名
--network:      容器鏈接到網絡
--network-alias:        爲容器網絡起別名
--publish , -p:     將容器端口映射到宿主機
--publish-all , -P:     將容器所有端口映射到宿主機
--read-only:        將容器的根文件系統掛載爲只讀
--restart:      容器退出時重新啓動策略以應用
--rm:       退出時自動刪除容器
--stop-signal:      停止容器的信號
--tty , -t:     分配終端
--user , -u:        設置運行容器的用戶
--workdir , -w:     設置容器的工作目錄
參數還有很多,這裏就不一一列舉了,上面是常用的參數

示例

創建nginx容器並啓動

root@test:/jia/test# docker create -t -i  nginx:latest /bin/bash        //創建容器
6f2cea61b80c117fe877589073b5f259a57623bd511a89330c72c825c0cbe4fd        
root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6f2cea61b80c        nginx:latest        "/bin/bash"         12 seconds ago      Created                                 funny_gould
root@test:/jia/test# docker start -a -i 6f2cea61b80c        //啓動容器
root@6f2cea61b80c:/# ls     //列出容器當前目錄
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@6f2cea61b80c:/# 

創建名爲nginx的容器並進行啓動

root@test:/jia/test# docker create --name nginx -t -i nginx:latest /bin/bash        //創建容器
5487d362e25bfcd39c70754972eb964121ba8408f3f97c89cac930208882e745
root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
5487d362e25b        nginx:latest        "/bin/bash"         5 seconds ago       Created                                 nginx
root@test:/jia/test# docker start -a -i nginx       //啓動容器並進行鏈接
root@5487d362e25b:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@5487d362e25b:/# 

創建nginx容器並映射端口

root@test:/jia/test# docker create --name nginx -p 80:80-it nginx:latest /bin/bash  //創建容器
4cc06988f4284f01281a338b914aff247a16969e33177088673a281d848f99d4
root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
ad7eb9da0f48        nginx:latest        "/bin/bash"         2 minutes ago       Exited (0) 2 seconds ago                       nginx
root@test:/jia/test# docker start nginx     //啓動容器
nginx
root@test:/jia/test# docker ps -a       //查看容器狀態
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
ad7eb9da0f48        nginx:latest        "/bin/bash"         2 minutes ago       Up 5 seconds        0.0.0.0:8080->80/tcp   nginx
root@test:/jia/test# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@test:/jia/test#

diff

查看容器改動

語法

docker diff 容器

符號說明

A   添加了文件或目錄
D   文件或目錄已刪除
C   文件或目錄已更改

示例

默認使用方法

root@test:/jia/test# docker diff nginx
C /root
A /root/.bash_history
root@test:/jia/test# 

複製test文件到nginx容器中查看你改動情況

root@test:/jia/test# docker cp test nginx:/     //複製test文件到容器的根目錄
root@test:/jia/test# docker diff nginx
A /test
C /root
A /root/.bash_history
root@test:/jia/test# 

exec

在容器中執行命令

語法

docker exec 參數 容器ID/容器名稱 命令

參數說明

--detach , -d:後臺運行容器
--detach-keys:覆蓋分離容器的鍵序列
--env , -e:設置環境變量
--interactive , -i: 即使未連接STDIN也保持打開狀態
--privileged:賦予命令擴展權限
--tty , -t: 分配僞TTY
--user , -u:指定運行用戶
--workdir , -w:設置工作目錄

示例

使用容器打印“hello word”

root@test:/jia/test# docker run --name centos -itd centos:latest        //創建並啓動容器
1b75dac7104122e021fb8cc7989c8992eb8502f34713e76ee87e6d6f7796e83c
root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1b75dac71041        centos:latest       "/bin/bash"         4 seconds ago       Up 3 seconds                            centos
root@test:/jia/test# docker exec centos echo "hello word"       //使用 echo 打印“hello word”
hello word
root@test:/jia/test# 

給容器建立交互式shell,並查看容器IP地址

root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1b75dac71041        centos:latest       "/bin/bash"         2 minutes ago       Up 2 minutes                            centos
root@test:/jia/test# docker exec -it centos /bin/bash       //建立bash交互式shell
[root@1b75dac71041 /]# ip addr      //查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@1b75dac71041 /]# 

指定工作目錄,並打印路徑

root@test:/jia/test# docker ps -a       //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1b75dac71041        centos:latest       "/bin/bash"         9 minutes ago       Up 9 minutes                            centos
root@test:/jia/test# docker exec -w /var/www/html centos pwd        //設置工作目錄,並進行打印目錄
/var/www/html
root@test:/jia/test#

login

登入docker鏡像源服務器

語法

docker login 參數 服務器地址

參數說明

-p, --password:指定登錄服務器用戶的密碼
-u, --username:指定登錄服務器用戶的賬戶

示例

默認登錄dockerhub

root@test:/jia/test# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: blxt
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@test:/jia/test#

指定用戶名和密碼進行登錄

root@test:/jia/test# docker login -u blxt -p 123456
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@test:/jia/test# 

登錄阿里鏡像倉庫

root@jia:/etc# docker login -u '弒天傾城' -p '123456' registry.cn-shenzhen.aliyuncs.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc# 

logout

退出登錄鏡像源服務器

語法

docker logout 鏡像倉庫地址

示例

退出dockerhub用戶登錄

root@jia:/etc# docker login -u blxt -p '[email protected]'        //登錄dockerhub服務器
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc# docker logout        //退出登錄
Removing login credentials for https://index.docker.io/v1/
root@jia:/etc# 

退出阿里鏡像倉庫

root@jia:/etc# docker login -u '弒天傾城' -p '123456' registry.cn-shenzhen.aliyuncs.com     //登錄阿里鏡像倉庫
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
root@jia:/etc# docker logout        //退出失敗沒有登錄dockerhub倉庫
Not logged in to https://index.docker.io/v1/
root@jia:/etc# docker logout registry.cn-shenzhen.aliyuncs.com
Removing login credentials for registry.cn-shenzhen.aliyuncs.com        //退出登錄阿里鏡像倉庫
root@jia:/etc# 

logs

輸出當前容器的日誌信息

語法

docker logs 參數 容器ID/容器名

參數說明

--details:查看日誌詳細信息
--follow , -f:實時動態的查看日誌
--since:顯示生成日誌的時間
--tail:顯示日誌行數
--timestamps , -t:顯示時間戳
--until:顯示某一時間段的日誌信息

示例

默認查看容器日誌

root@jia:/etc# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
85c8be92df44        nginx:latest        "nginx -g 'daemon of…"   7 minutes ago       Up 7 minutes        80/tcp              nginx
root@jia:/etc# docker logs nginx
172.17.0.1 - - [08/Jan/2020:08:19:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:04 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:07 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
root@jia:/etc# 

實時顯示nginx容器的日誌

root@jia:/etc# docker run --name nginx -itd nginx:latest        //創建並啓動nginx容器
85c8be92df44960e0973ae2b48907661679d921d0523cb93526351f07850f290
root@jia:/etc# docker ps -a     //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
85c8be92df44        nginx:latest        "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        80/tcp              nginx
root@jia:~# docker inspect nginx | IPAddress    //查看容器的ip地址
IPAddress: command not found
root@jia:~# docker inspect nginx | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
root@jia:~# curl 127.0.0.1      //訪問nginx服務
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@jia:/etc# docker logs -f nginx     //輸出日誌信息
172.17.0.1 - - [08/Jan/2020:08:19:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:04 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"
172.17.0.1 - - [08/Jan/2020:08:19:07 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.58.0" "-"

port

查看容器的端口映射情況

語法

docker port 容器ID/容器名稱

示例

列出nginx容器所有端口映射情況

root@jia:/etc# docker run --name nginx -itd -P nginx:latest         //創建並啓動容器,映射容器所有端口
b4e3a51697c2e35b4a17acee93630ac77c6e9fe94df99c70750b60c4f87b535a
root@jia:/etc# docker ps -a         //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
b4e3a51697c2        nginx:latest        "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        0.0.0.0:32768->80/tcp   nginx
root@jia:/etc# docker port nginx        //顯示容器端口映射情況
80/tcp -> 0.0.0.0:32768
root@jia:/etc# 

ps

列出容器列表

語法

docker ps 參數 

參數說明

--all , -a:查看所有容器
--filter , -f:根據相關條件進行過濾
--format:   使用Go模板打印漂亮的容器
--last , -n:顯示第幾個創建的容器
--latest , -l:顯示最新創建的容器
--no-trunc:顯示詳細信息
--quiet , -q:只顯示容器ID
--size , -s:顯示容器的總大小

示例

查看所有容器

root@jia:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
79b53ebbc86e        centos:latest       "/bin/bash"              5 seconds ago       Created                                     fervent_payne
b4e3a51697c2        nginx:latest        "nginx -g 'daemon of…"   13 minutes ago      Up 13 minutes       0.0.0.0:32768->80/tcp   nginx
root@jia:~# 

查看正在運行的容器

root@jia:~# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
b4e3a51697c2        nginx:latest        "nginx -g 'daemon of…"   13 minutes ago      Up 13 minutes       0.0.0.0:32768->80/tcp   nginx
root@jia:~# 

restart

重新啓動容器

語法

docker restart 容器名稱/容器ID

參數

-t:設置重啓執行時間

示例

root@jia:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
b4e3a51697c2        nginx:latest        "nginx -g 'daemon of…"   16 minutes ago      Up 16 minutes       0.0.0.0:32768->80/tcp   nginx
root@jia:~# docker restart nginx
nginx
root@jia:~# 

rm

刪除容器

語法

docker rm 參數 容器ID/容器名稱

參數

--force , -f:根據條件進行刪除容器,強制刪除正在運行的容器
--link , -l:移除容器間的網絡連接,而非容器本身
-v, --volumes:刪除與容器關聯的文件系統

示例

刪除nginx容器

root@jia:~# docker ps -a        //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                   NAMES
c3800e1bda43        centos              "/bin/bash"              About a minute ago   Up About a minute                           centos
b4e3a51697c2        nginx:latest        "nginx -g 'daemon of…"   22 minutes ago       Up 5 minutes        0.0.0.0:32769->80/tcp   nginx
root@jia:~# docker rm nginx     //刪除容器,但nginx容器正在運行所以無法使用此參數刪除
Error response from daemon: You cannot remove a running container b4e3a51697c2e35b4a17acee93630ac77c6e9fe94df99c70750b60c4f87b535a. Stop the container before attempting removal or force remove
root@jia:~# docker rm -f nginx      //強制刪除nginx容器
nginx
root@jia:~# docker ps -a        //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
c3800e1bda43        centos              "/bin/bash"         About a minute ago   Up About a minute                       centos
root@jia:~# 

刪除所有容器

root@jia:~# docker ps -a        //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
4ee9b7488e32        nginx               "nginx -g 'daemon of…"   26 seconds ago      Up 25 seconds       80/tcp              nginx
c3800e1bda43        centos              "/bin/bash"              4 minutes ago       Up 4 minutes                            centos
root@jia:~# docker rm $(docker ps -a -q)        //刪除容器失敗,因爲容器正在運行
Error response from daemon: You cannot remove a running container 4ee9b7488e323c80d9acaa01a214d00bc3072e2430df5ce7a0560acea0c9587c. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container c3800e1bda43416add00ac18fb9c2d15e7d106e302ceef090e04d7fa6133368d. Stop the container before attempting removal or force remove
root@jia:~# docker rm -f  $(docker ps -a -q)        //刪除所有容器
4ee9b7488e32
c3800e1bda43
root@jia:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@jia:~# 

rmi

刪除本地鏡像

語法

docker rmi 參數 鏡像名稱/鏡像ID

參數

--force , -f:強制刪除
--no-prune:不移除該鏡像的過程鏡像,默認移除

示例

默認刪除鏡像

root@jia:~# docker images       //查看本地鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        10 days ago         126MB
ubuntu              latest              549b9b86cb8d        2 weeks ago         64.2MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:~# docker rmi  549b9b86cb8d        //刪除ubuntu的鏡像
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4
Deleted: sha256:549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8
Deleted: sha256:7c52cdc1e32d67e3d5d9f83c95ebe18a58857e68bb6985b0381ebdcec73ff303
Deleted: sha256:a3c2e83788e20188bb7d720f36ebeef2f111c7b939f1b19aa1b4756791beece0
Deleted: sha256:61199b56f34827cbab596c63fd6e0ac0c448faa7e026e330994818190852d479
Deleted: sha256:2dc9f76fb25b31e0ae9d36adce713364c682ba0d2fa70756486e5cedfaf40012
root@jia:~# docker images       //查看本地鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        10 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:~# 

強制刪除正在運行的鏡像

root@jia:~# docker run -itd --name nginx nginx      //啓動創建容器
36b203a3fb5cf8fe6a1e13e298998c8510f7d24e49da36ada8d7181d89b16089
root@jia:~# docker ps -a        //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
36b203a3fb5c        nginx               "nginx -g 'daemon of…"   3 seconds ago       Up 2 seconds        80/tcp              nginx
root@jia:~# docker images       //查看本地鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        10 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:~# docker rmi nginx:latest     //默認刪除鏡像,刪除失敗,報錯鏡像正在使用
Error response from daemon: conflict: unable to remove repository reference "nginx:latest" (must force) - container 36b203a3fb5c is using its referenced image f7bb5701a33c
root@jia:~# docker rmi -f nginx:latest      //強制刪除鏡像
Untagged: nginx:latest
Untagged: nginx@sha256:b2d89d0a210398b4d1120b3e3a7672c16a4ba09c2c4a0395f18b9f7999b768f2
root@jia:~# docker images       //查看鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              f7bb5701a33c        10 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:~# 

注意:當強制刪除鏡像後,會直接刪除,但是會生成新的鏡像,容器不會被刪除

save

保存鏡像爲tar包

語法

docker save 參數 鏡像名稱 文件目錄及名稱.tar

參數說明

--output , -o:保存到某文件

示例

將nginx鏡像保存爲文件

root@jia:/jia/jia# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        11 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# docker save nginx:latest > nginx.tar
root@jia:/jia/jia# ls
nginx.tar
root@jia:/jia/jia# 

將多個鏡像保存到一個文件

root@jia:/jia/jia# docker save  -o test.tar nginx:latest centos:latest
root@jia:/jia/jia# ls
nginx.tar  test.tar
root@jia:/jia/jia# 

使用gzip+tar進行打包壓縮

root@jia:/jia/jia# docker save nginx:latest | gzip > nginx.tar.gz
root@jia:/jia/jia# ls -lh       //查看目錄中文件長格式顯示
total 513M
-rw-r--r-- 1 root root 125M Jan  9 16:57 nginx.tar
-rw-r--r-- 1 root root  47M Jan  9 17:03 nginx.tar.gz
-rw------- 1 root root 342M Jan  9 17:00 test.tar
root@jia:/jia/jia# 

top

查看容器中進程信息

語法

docker top 參數 容器ID/容器名稱

示例
查看nginx容器中所有進程信息

root@jia:/jia/jia# docker run --name nginx -itd nginx:latest        //創建啓動nginx容器
69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6
root@jia:/jia/jia# docker ps -a         //列出所有容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   5 seconds ago       Up 4 seconds        80/tcp              nginx
root@jia:/jia/jia# docker top nginx
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                28665               28637               1                   17:08               pts/0               00:00:00            nginx: master process nginx -g daemon off;
systemd+            28724               28665               0                   17:08               pts/0               00:00:00            nginx: worker process
root@jia:/jia/jia# 

version

查看docker軟件版本

語法

docker version 參數

參數說明

-f, --format:使用給定的Go模板格式化輸出
--kubeconfig:Kubernetes配置文件

示例
查看docker版本詳細信息

root@jia:/jia/jia# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:29:52 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:28:22 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
root@jia:/jia/jia# 

查看docker版本

root@jia:/jia/jia# docker version --format '{{.Server.Version}}'
19.03.5
root@jia:/jia/jia#

events

查看docker服務器實時事件

語法

docker events 參數

參數說明

-f,--filter:根據條件過濾事件
--since :從指定的時間戳後顯示所有事件
--until :流水時間顯示到指定的時間爲止
--format:使用給定的Go模板格式化輸出

示例
容器啓動停止,使用events顯示事件

root@jia:/jia/jia# docker ps -a     //查看容器列表
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   13 minutes ago      Up 13 minutes       80/tcp              nginx
root@jia:/jia/jia# docker stop nginx        //停止容器
nginx
root@jia:/jia/jia# docker start nginx       //啓動容器
nginx
root@jia:/jia/jia# 

root@jia:~# docker events       //查看實時事件,注意此命令不會自動終止需要crtl+c終止
2020-01-09T17:22:26.880177305+08:00 container kill 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers <[email protected]>, name=nginx, signal=15)
2020-01-09T17:22:27.005016080+08:00 container die 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (exitCode=0, image=nginx:latest, maintainer=NGINX Docker Maintainers <[email protected]>, name=nginx)
2020-01-09T17:22:27.103273324+08:00 network disconnect f2ccf449e47668433fb96511ef577c7515be7f481a7a9cb386c9d46650cbabbf (container=69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6, name=bridge, type=bridge)
2020-01-09T17:22:27.145650268+08:00 container stop 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers <[email protected]>, name=nginx)
2020-01-09T17:22:33.680477968+08:00 network connect f2ccf449e47668433fb96511ef577c7515be7f481a7a9cb386c9d46650cbabbf (container=69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6, name=bridge, type=bridge)
2020-01-09T17:22:34.093551544+08:00 container start 69e353d8564025e07ee201098cafb9870d95b92edf990db2455aa6261c0bede6 (image=nginx:latest, maintainer=NGINX Docker Maintainers <[email protected]>, name=nginx)

import

從tar文件導入docker爲鏡像

語法

docker import 參數 tar文件目錄名稱 導入的鏡像名稱:tag(版本)

參數說明

--change , -c:  將Dockerfile指令應用於創建的映像
--message , -m: 設置導入圖像的提交消息

示例
將nginx.tar的鏡像包導入docker並命名nginx版本V1

root@jia:/jia/jia# docker images        //查看本地所有鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        11 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# ls
nginx.tar  nginx.tar.gz  test.tar
root@jia:/jia/jia# docker import nginx.tar nginx:V1
sha256:07b2b1766ed11df9e7a12f98a4c5127c1aa0087e6b7d4eb0bc21490f168c1b0d
root@jia:/jia/jia# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               V1                  07b2b1766ed1        3 seconds ago       130MB
nginx               latest              f7bb5701a33c        11 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# 

導入使用tar打包gzip壓縮的鏡像

root@jia:/jia/jia# docker import nginx.tar.gz nginx:V2
sha256:ca7505dbea914f7babb1ed3667d1a133461c344d92ea978585b64fe7dabf5b36
root@jia:/jia/jia# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               V2                  ca7505dbea91        8 seconds ago       130MB
nginx               V1                  07b2b1766ed1        2 minutes ago       130MB
nginx               latest              f7bb5701a33c        11 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# 

export

從docker導出容器爲tar文件

語法

docker export 參數 容器名稱/容器ID

參數說明

--output , -o:寫入文件

示例
導出centos容器並命名爲centos.tar

root@jia:/jia/jia# docker run --name centos -itd centos:latest      //創建並啓動centos容器
06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf
root@jia:/jia/jia# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
06b5abbb068d        centos:latest       "/bin/bash"              4 seconds ago       Up 3 seconds                            centos
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   32 minutes ago      Up 18 minutes       80/tcp              nginx
root@jia:/jia/jia# docker export centos > centos.tar
root@jia:/jia/jia# ls
centos.tar  nginx.tar  nginx.tar.gz  test.tar
root@jia:/jia/jia# 

導出centos容器並命名爲centos.tar.gz,使用gzip壓縮

root@jia:/jia/jia# docker export centos > centos.tar
root@jia:/jia/jia# ls
centos.tar  nginx.tar  nginx.tar.gz  test.tar
root@jia:/jia/jia# docker export centos | gzip > centos.tar.gz
root@jia:/jia/jia# ls -lh
total 796M
-rw-r--r-- 1 root root 217M Jan  9 17:41 centos.tar
-rw-r--r-- 1 root root  67M Jan  9 17:43 centos.tar.gz
-rw-r--r-- 1 root root 125M Jan  9 16:57 nginx.tar
-rw-r--r-- 1 root root  47M Jan  9 17:03 nginx.tar.gz
-rw------- 1 root root 342M Jan  9 17:00 test.tar
root@jia:/jia/jia# 

導出nginx容器,並命名nginx1.tar

root@jia:/jia/jia# docker export -o nginx1.tar nginx
root@jia:/jia/jia# ls
centos.tar  centos.tar.gz  nginx1.tar  nginx.tar  nginx.tar.gz  test.tar
root@jia:/jia/jia# 

info

查看docker系統信息

語法

docekr info 參數

參數說明

--format , -f:使用給定的Go模板格式化輸出

示例

root@jia:/jia/jia# docker info
    Client:
     Debug Mode: false

    Server:
     Containers: 2
      Running: 2
      Paused: 0
      Stopped: 0
     Images: 4
     Server Version: 19.03.5
     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 local logentries splunk syslog
     Swarm: inactive
     Runtimes: runc
     Default Runtime: runc
     Init Binary: docker-init
     containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
     runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
     init version: fec3683
     Security Options:
      apparmor
      seccomp
       Profile: default
     Kernel Version: 4.15.0-65-generic
     Operating System: Ubuntu 18.04.3 LTS
     OSType: linux
     Architecture: x86_64
     CPUs: 2
     Total Memory: 3.852GiB
     Name: jia
     ID: 74XS:4TCO:7OQX:BKF2:O2WW:JYEF:6Y6Q:RT3X:YVRO:Y2LP:JZIA:AHSB
     Docker Root Dir: /var/lib/docker
     Debug Mode: false
     Registry: https://index.docker.io/v1/
     Labels:
     Experimental: false
     Insecure Registries:
      127.0.0.0/8
     Live Restore Enabled: false

    WARNING: No swap limit support
    root@jia:/jia/jia# 

inspect

查看容器詳細信息

語法

docker inspect 參數 容器ID/容器名稱

參數說明

--format , -f:使用給定的Go模板格式化輸出
--size , -s:顯示文件總大小
--type :爲指定類型返回JSON

示例

獲取容器IP地址

第一種方式:

root@jia:/jia/jia# docker ps -a     //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
06b5abbb068d        centos:latest       "/bin/bash"              17 hours ago        Up 17 hours                             centos
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   17 hours ago        Up 17 hours         80/tcp              nginx
root@jia:/jia/jia# docker inspect centos | grep IPAddress
        "SecondaryIPAddresses": null,
        "IPAddress": "172.17.0.3",
                "IPAddress": "172.17.0.3",
root@jia:/jia/jia# 

第二種方式:(只顯示IP地址)

root@jia:/jia/jia#  docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' centos
172.17.0.3
root@jia:/jia/jia# 

獲取容器MAC地址

root@jia:/jia/jia# docker inspect centos | grep MacAddress
        "MacAddress": "02:42:ac:11:00:03",
                "MacAddress": "02:42:ac:11:00:03",
root@jia:/jia/jia# 

獲取容器日誌目錄

root@jia:/jia/jia# docker inspect centos | grep log
    "LogPath": "/var/lib/docker/containers/06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf/06b5abbb068dc493056aae6f1526b81028f931fd160fe470a937e15ac0110bdf-json.log",
root@jia:/jia/jia# 

kill

殺死正在運行的容器

語法

docker kill 參數 容器ID/容器名稱

參數說明

--signal , -s:向容器發送信號

示例

殺死正在運行的centos容器

root@jia:/jia/jia# docker ps        //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
06b5abbb068d        centos:latest       "/bin/bash"              17 hours ago        Up 17 hours                             centos
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   18 hours ago        Up 17 hours         80/tcp              nginx
root@jia:/jia/jia# docker kill centos
centos
root@jia:/jia/jia# docker ps -a     //查看所有容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
06b5abbb068d        centos:latest       "/bin/bash"              17 hours ago        Exited (137) 6 seconds ago                       centos
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   18 hours ago        Up 17 hours                  80/tcp              nginx
root@jia:/jia/jia# 

殺死正在運行的nginx容器,發送kill信號

root@jia:/jia/jia# docker kill --signal=kill  nginx
nginx
root@jia:/jia/jia# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
06b5abbb068d        centos:latest       "/bin/bash"              17 hours ago        Exited (137) 3 minutes ago                       centos
69e353d85640        nginx:latest        "nginx -g 'daemon of…"   18 hours ago        Exited (137) 1 second ago                        nginx
root@jia:/jia/jia# 

load

從tar文件中加載爲docker鏡像

語法

docker load 參數 tar文件

參數說明

-i, --input:從tar存檔文件中讀取,而不是從STDIN中讀取
--quiet , -q:顯示簡要信息

示例

導入nginx鏡像

root@jia:/jia/jia# docker images        //查看所有鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# docker load < nginx.tar.gz 
556c5fb0d91b: Loading layer [==================================================>]  72.48MB/72.48MB
49434cc20e95: Loading layer [==================================================>]  57.67MB/57.67MB
75248c0d5438: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image: nginx:latest
root@jia:/jia/jia# docker images        //查看所有鏡像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        12 days ago         126MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# 

pause

暫停容器

語法

docker pause 容器ID/容器名稱

示例

暫停centos容器

root@jia:/jia/jia# docker run -itd --name centos centos:latest      //創建並運行
48e49042b927f427aed68437e12e5acd14b82e3a33a71b6f236bcef5c3edd41d
root@jia:/jia/jia# docker ps        //查看容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
48e49042b927        centos:latest       "/bin/bash"         2 seconds ago       Up 2 seconds                            centos
root@jia:/jia/jia# docker pause centos  
centos
root@jia:/jia/jia# docker ps -a     //查看所有容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
48e49042b927        centos:latest       "/bin/bash"         14 seconds ago      Up 13 seconds (Paused)                       centos
root@jia:/jia/jia# 

容器暫停後會在狀態處加(Paused) 

unpause

取消容器暫停狀態

語法

docker unpause 容器ID/容器名稱

示例

取消centos容器的暫停操作

root@jia:/jia/jia# docker ps -a     //查看所有容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
48e49042b927        centos:latest       "/bin/bash"         14 seconds ago      Up 13 seconds (Paused)                       centos
root@jia:/jia/jia# docker unpause centos
centos
root@jia:/jia/jia# docker ps -a     //查看所有容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
48e49042b927        centos:latest       "/bin/bash"         5 minutes ago       Up 5 minutes                            centos
root@jia:/jia/jia# 

t a g

給鏡像進行打標籤

語法

docker tag 源鏡像ID/源鏡像名稱:tag(版本) 目標鏡像名稱:tag(版本)

示例

給centos鏡像重新打標籤

root@jia:/jia/jia# docker tag  centos:latest centos:V1
root@jia:/jia/jia# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f7bb5701a33c        12 days ago         126MB
centos              V1                  0f3e07c0138f        3 months ago        220MB
centos              latest              0f3e07c0138f        3 months ago        220MB
root@jia:/jia/jia# 

wait

阻塞運行直到容器停止,然後打印出它的退出代碼

語法

docekr wait 容器ID/容器名稱

示例

root@jia:/jia/jia# docker run -itd --name nginx nginx       //創建啓動容器
57af5446f0eaff56a54c3a5559ac0073511de9b9f48c93ff04bbcd0c62b3a809
root@jia:/jia/jia# docker ps        //查看容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
57af5446f0ea        nginx               "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        80/tcp              nginx
root@jia:/jia/jia# docker inspect nginx | grep IPAddress        //查看容器IP地址
        "SecondaryIPAddresses": null,
        "IPAddress": "172.17.0.2",
                "IPAddress": "172.17.0.2",
root@jia:/jia/jia# curl 172.17.0.2      //訪問容器的80端口
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@jia:/jia/jia# docker wait nginx        //啓動阻塞

root@jia:~# curl 172.18.0.2     //發現無法訪問容器nginx頁面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章