苍山老农 發表於 2015-9-8 17:01:00

Docker命令详解

<p>最近学习Docker,将docker所有命令实验了一番,特整理如下:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># docker </span>--<span style="color: rgba(0, 0, 0, 1)">help
Usage: docker COMMAND
       docker daemon [ </span>--help |<span style="color: rgba(0, 0, 0, 1)"> ... ]
       docker [ </span>-h | --help | -v | --<span style="color: rgba(0, 0, 0, 1)">version ]

A self</span>-sufficient runtime <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> containers.

Options:

</span>--config=~/<span style="color: rgba(0, 0, 0, 1)">.docker            Location of client config files
</span>-D, --debug=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">               Enable debug mode
</span>-H, --host=<span style="color: rgba(0, 0, 0, 1)">[]                   Daemon socket(s) to connect to
</span>-h, --help=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">                Print usage
</span>-l, --log-level=<span style="color: rgba(0, 0, 0, 1)">info            Set the logging level
</span>--tls=<span style="color: rgba(0, 0, 255, 1)">false</span>                     Use TLS; implied by --<span style="color: rgba(0, 0, 0, 1)">tlsverify
</span>--tlscacert=~/.docker/ca.pem    Trust certs signed only by <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)"> CA
</span>--tlscert=~/.docker/<span style="color: rgba(0, 0, 0, 1)">cert.pem    Path to TLS certificate file
</span>--tlskey=~/.docker/<span style="color: rgba(0, 0, 0, 1)">key.pem      Path to TLS key file
</span>--tlsverify=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">               Use TLS and verify the remote
</span>-v, --version=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">             Print version information and quit

Commands:
    <strong><span style="color: rgba(255, 0, 0, 1)">attach    Attach to a running container</span> </strong> <br></span>            <span style="color: rgba(0, 0, 255, 1)">--将终端依附到容器上
            </span><span style="color: rgba(128, 0, 128, 1)">1</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 运行一个交互型容器
               # docker run -i -t centos /bin/<span style="color: rgba(0, 0, 0, 1)">bash
               #
            </span><span style="color: rgba(128, 0, 128, 1)">2</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 在另一个窗口上查看该容器的状态
               # docker ps -<span style="color: rgba(0, 0, 0, 1)">a
               CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS      PORTS       NAMES
               d4a75f165ce6      centos            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span>         <span style="color: rgba(128, 0, 128, 1)">5</span> seconds ago       Up <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)"> seconds            cranky_mahavira
            </span><span style="color: rgba(128, 0, 128, 1)">3</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 退出第一步中运行的容器
               # exit
                  exit
            </span><span style="color: rgba(128, 0, 128, 1)">4</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 查看该容器的状态
               # docker ps -<span style="color: rgba(0, 0, 0, 1)">a
               CONTAINER ID      IMAGE         COMMAND         CREATED             STATUS                  PORTS    NAMES
               d4a75f165ce6      centos          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span>       <span style="color: rgba(128, 0, 128, 1)">2</span> minutes ago       Exited (<span style="color: rgba(128, 0, 128, 1)">0</span>) <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> seconds ago      cranky_mahavira
               可见此时容器的状态是Exited,那么,如何再次运行这个容器呢?可以使用docker start命令
            </span><span style="color: rgba(128, 0, 128, 1)">5</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 再次运行该容器
               # docker start cranky_mahavira
               cranky_mahavira
            </span><span style="color: rgba(128, 0, 128, 1)">6</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 再次查看该容器的状态
               # docker ps -<span style="color: rgba(0, 0, 0, 1)">a
               CONTAINER ID      IMAGE          COMMAND             CREATED             STATUS            PORTS      NAMES
               d4a75f165ce6      centos         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/bin/bash</span><span style="color: rgba(128, 0, 0, 1)">"</span>         <span style="color: rgba(128, 0, 128, 1)">6</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)"> seconds                  cranky_mahavira
               因为该容器是交互型的,但此刻我们发现没有具体的终端可以与之交互,这时可使用attach命令。
            </span><span style="color: rgba(128, 0, 128, 1)">7</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> 通过attach命令进行交互
               # docker attach cranky_mahavira
               # <br>
    <strong><span style="color: rgba(255, 0, 0, 1)">build   Build an image </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a Dockerfile
            </span></strong>-<span style="color: rgba(0, 0, 255, 1)">-</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">通过Dockerfile创建镜像<br></span>
    <strong><span style="color: rgba(255, 0, 0, 1)">commit    Create a </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">new image from a container's changes</span></strong>
             <span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">通过容器创建本地镜像</span>
            注意:如果是要push到docker hub中,注意生成镜像的命名
               # docker commit centos_v1 centos:v1
               68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638
               # docker push centos:v1
               You cannot push a </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">root</span><span style="color: rgba(128, 0, 0, 1)">"</span> repository. Please rename your repository to &lt;user&gt;/&lt;repo&gt; (ex: &lt;user&gt;/<span style="color: rgba(0, 0, 0, 1)">centos)
               用centos:v1就不行,因为它push到docker hub中时,是推送到相应用户下,必须指定用户名。譬如我的用户名是ivictor,则新生成的本地镜像命名为:
               docker push victor</span>/<span style="color: rgba(0, 0, 0, 1)">centos:v1,其中v1是tag,可不写,默认是latest <br>            
    <strong><span style="color: rgba(255, 0, 0, 1)">cp      Copy files</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">/folders from a container to a HOSTDIR or to STDOUT
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">在宿主机和容器之间相互COPY文件</span>
            cp的用法如下:
            Usage:    docker cp CONTAINER:PATH LOCALPATH</span>|-<span style="color: rgba(0, 0, 0, 1)">
                        docker cp LOCALPATH</span>|-<span style="color: rgba(0, 0, 0, 1)"> CONTAINER:PATH
            </span><span style="color: rgba(0, 0, 0, 1)">如:容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机<br>            #&nbsp; docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root<br>            修改完毕后,将该文件重新copy回容器<br>            # docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/   <br>
    <strong><span style="color: rgba(255, 0, 0, 1)">create    Create a </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">new container </span> </strong><br>            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">创建一个新的容器,注意,此时,容器的status只是Created<br><br></span>   <strong> <span style="color: rgba(255, 0, 0, 1)">diff      Inspect changes on a container</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">'s filesystem</span></strong>
            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看容器内发生改变的文件,以我的mysql容器为例</span>
               # docker diff mysqldb
               C </span>/<span style="color: rgba(0, 0, 0, 1)">root
               A </span>/root/<span style="color: rgba(0, 0, 0, 1)">.bash_history
               A </span>/<span style="color: rgba(0, 0, 0, 1)">test1.txt
               A </span>/<span style="color: rgba(0, 0, 0, 1)">test.tar
               A </span>/<span style="color: rgba(0, 0, 0, 1)">test.txt
               C </span>/<span style="color: rgba(0, 0, 0, 1)">run
               C </span>/run/<span style="color: rgba(0, 0, 0, 1)">mysqld
               A </span>/run/mysqld/<span style="color: rgba(0, 0, 0, 1)">mysqld.pid
               A </span>/run/mysqld/<span style="color: rgba(0, 0, 0, 1)">mysqld.sock
               不难看出,C对应的均是目录,A对应的均是文件<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">events    Get real time events </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from the server
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。</span>
            譬如:
            # docker events
            </span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">40</span>:<span style="color: rgba(128, 0, 128, 1)">13.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> wordpress) create
            </span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">40</span>:<span style="color: rgba(128, 0, 128, 1)">14.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> wordpress) die
            </span><span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">09</span>-08T17:<span style="color: rgba(128, 0, 128, 1)">42</span>:<span style="color: rgba(128, 0, 128, 1)">10.000000000</span>+<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">00</span> 839866a338db6dd626fa8eabeef53a839e4d2e2eb16ebd89679aa722c4caa5f7: (<span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> mysql) start<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">exec      Run a command </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in a running container
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于容器启动之后,执行其它的任务</span>
            通过exec命令可以创建两种任务:后台型任务和交互型任务
            后台型任务:docker exec </span>-d cc touch <span style="color: rgba(128, 0, 128, 1)">123</span><span style="color: rgba(0, 0, 0, 1)">其中cc是容器名
            交互型任务:
            # docker exec -i -t cc /bin/<span style="color: rgba(0, 0, 0, 1)">bash
            root@1e5bb46d801b:</span>/<span style="color: rgba(0, 0, 0, 1)"># ls
            </span><span style="color: rgba(128, 0, 128, 1)">123</span>binbootdevetchomeliblib64mediamntoptprocrootrunsbinsrvsystmpusr<span style="color: rgba(0, 0, 255, 1)">var<br></span><strong><span style="color: rgba(255, 0, 0, 1)">
    export    Export a container's filesystem as a tar archive</span></strong>
            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将容器的文件系统打包成tar文件</span>
            有两种方式:
            docker export </span>-<span style="color: rgba(0, 0, 0, 1)">o mysqldb1.tar mysqldb
            docker export mysqldb </span>&gt;<span style="color: rgba(0, 0, 0, 1)"> mysqldb.tar<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">history   Show the history of an image
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">显示镜像制作的过程,相当于dockfile<br></span>
    <span style="color: rgba(255, 0, 0, 1)"><strong>images    List images</strong>   <br>            </span></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">列出本机的所有镜像<br></span>
    <strong><span style="color: rgba(255, 0, 0, 1)">import    Import the contents </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a tarball to create a filesystem image
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">根据tar文件的内容新建一个镜像,与之前的export命令相对应</span>
             # docker import mysqldb.tar mysql:v1
             eb81de183cd94fd6f0231de4ff29969db822afd3a25841d2dc9cf3562d135a10
             # docker images
             REPOSITORY               TAG               IMAGE ID            CREATED            VIRTUAL SIZE
             mysql                      v1                  eb81de183cd9      </span><span style="color: rgba(128, 0, 128, 1)">21</span> seconds ago       <span style="color: rgba(128, 0, 128, 1)">281.9</span><span style="color: rgba(0, 0, 0, 1)"> MB<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">info      Display system</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">-wide information
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看docker的系统信息</span>
            # docker info
            Containers: </span><span style="color: rgba(128, 0, 128, 1)">3</span>   <span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">当前有3个容器</span>
            Images: </span><span style="color: rgba(128, 0, 128, 1)">298</span><span style="color: rgba(0, 0, 0, 1)">      
            Storage Driver: devicemapper
               Pool Name: docker</span>-<span style="color: rgba(128, 0, 128, 1)">253</span>:<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">34402623</span>-<span style="color: rgba(0, 0, 0, 1)">pool
               Pool Blocksize: </span><span style="color: rgba(128, 0, 128, 1)">65.54</span><span style="color: rgba(0, 0, 0, 1)"> kB
               Backing Filesystem: xfs
               Data file: </span>/dev/<span style="color: rgba(0, 0, 0, 1)">loop0
               Metadata file: </span>/dev/<span style="color: rgba(0, 0, 0, 1)">loop1
               Data Space Used: </span><span style="color: rgba(128, 0, 128, 1)">8.677</span> GB   <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对应的是下面Data loop file大小</span>
               Data Space Total: </span><span style="color: rgba(128, 0, 128, 1)">107.4</span><span style="color: rgba(0, 0, 0, 1)"> GB
               Data Space Available: </span><span style="color: rgba(128, 0, 128, 1)">5.737</span><span style="color: rgba(0, 0, 0, 1)"> GB
               Metadata Space Used: </span><span style="color: rgba(128, 0, 128, 1)">13.4</span> MB<span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对应的是下面Metadata loop file大小</span>
               Metadata Space Total: </span><span style="color: rgba(128, 0, 128, 1)">2.147</span><span style="color: rgba(0, 0, 0, 1)"> GB
               Metadata Space Available: </span><span style="color: rgba(128, 0, 128, 1)">2.134</span><span style="color: rgba(0, 0, 0, 1)"> GB
               Udev Sync Supported: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
               Deferred Removal Enabled: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
               Data loop file: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/lib/docker/devicemapper/devicemapper/<span style="color: rgba(0, 0, 0, 1)">data
               Metadata loop file: </span>/<span style="color: rgba(0, 0, 255, 1)">var</span>/lib/docker/devicemapper/devicemapper/<span style="color: rgba(0, 0, 0, 1)">metadata
               Library Version: </span><span style="color: rgba(128, 0, 128, 1)">1.02</span>.<span style="color: rgba(128, 0, 128, 1)">93</span>-RHEL7 (<span style="color: rgba(128, 0, 128, 1)">2015</span>-<span style="color: rgba(128, 0, 128, 1)">01</span>-<span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">)
            Execution Driver: native</span>-<span style="color: rgba(128, 0, 128, 1)">0.2</span><span style="color: rgba(0, 0, 0, 1)">
            Logging Driver: json</span>-<span style="color: rgba(0, 0, 0, 1)">file
            Kernel Version: </span><span style="color: rgba(128, 0, 128, 1)">3.10</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">229</span><span style="color: rgba(0, 0, 0, 1)">.el7.x86_64
            Operating System: CentOS Linux </span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)"> (Core)
            CPUs: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
            Total Memory: </span><span style="color: rgba(128, 0, 128, 1)">979.7</span><span style="color: rgba(0, 0, 0, 1)"> MiB
            Name: localhost.localdomain
            ID: TFVB:BXGQ:VVOC:K2DJ:LECE:2HNK:23B2:LEVF:P3IQ:L7D5:NG2V:UKNL
            WARNING: bridge</span>-nf-call-iptables <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> disabled
            WARNING: bridge</span>-nf-call-ip6tables <span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> disabled<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">inspect   Return low</span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">-level information on a container or image
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">kill      Kill a running container
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">强制终止容器</span>
            关于stop和kill的区别,docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,
            容器内程序可以捕获该信号并自行处理,例如可以选择忽略。而docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">load      Load an image </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a tar archive or STDIN
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入<br></span>
    <strong><span style="color: rgba(255, 0, 0, 1)">login   Register or log </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in to a Docker registry
            </span></strong><span style="color: rgba(255, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">--登录到自己的Docker register,需有Docker Hub的注册账号</span></span><span style="color: rgba(0, 0, 0, 1)">
            # docker login
            Username: ivictor
            Password:
            Email: xxxx@foxmail.com
            WARNING: login credentials saved </span><span style="color: rgba(0, 0, 255, 1)">in</span> /root/.docker/<span style="color: rgba(0, 0, 0, 1)">config.json
            Login Succeeded<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">logout    Log </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">out from a Docker registry
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">退出登录</span>
            # docker logout
            Remove login credentials </span><span style="color: rgba(0, 0, 255, 1)">for</span> https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">index.docker.io/v1/<br></span>
<strong><span style="color: rgba(255, 0, 0, 1)">    logs      Fetch the logs of a container
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">用于查看容器的日志,它将输出到标准输出的数据作为日志输出到docker logs命令的终端上。常用于后台型容器<br></span>
    <strong><span style="color: rgba(255, 0, 0, 1)">pause   Pause all processes within a container
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">暂停容器内的所有进程,</span>
            此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
            通过docker logs </span>-<span style="color: rgba(0, 0, 0, 1)">f也观察不到日志的进一步输出。<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">port      List port mappings or a specific mapping </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">for the CONTAINER
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">输出容器端口与宿主机端口的映射情况</span>
            譬如:
            # docker port blog
            </span><span style="color: rgba(128, 0, 128, 1)">80</span>/tcp -&gt; <span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>:<span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">
            容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">ps      List containers<br></span></strong></span>            <span style="color: rgba(0, 0, 255, 1)">--列出所有容器,其中docker ps用于查看正在运行的容器,ps -</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">a则用于查看所有容器。</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">pull      Pull an image or a repository </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">from a registry
            </span></strong><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">从docker hub中下载镜像</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">push      Push an image or a repository to a registry
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将本地的镜像上传到docker hub中</span>
            前提是你要先用docker login登录上,不然会报以下错误
            # docker push ivictor/<span style="color: rgba(0, 0, 0, 1)">centos:v1
            The push refers to a repository (len: <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
            unauthorized: access to the requested resource </span><span style="color: rgba(0, 0, 255, 1)">is</span><span style="color: rgba(0, 0, 0, 1)"> not authorized<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">rename    Rename a container
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">更改容器的名字</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">restart   Restart a running container <br></span></strong></span>             <span style="color: rgba(0, 0, 255, 1)"> --</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">重启容器</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">rm      Remove one or more containers</span>
            </strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">删除容器,注意,不可以删除一个运行中的容器,必须先用docker stop或docker kill使其停止。</span>
            当然可以强制删除,必须加</span>-<span style="color: rgba(0, 0, 0, 1)">f参数
            如果要一次性删除所有容器,可使用 docker rm </span>-f `docker ps -a -q`,其中,-<span style="color: rgba(0, 0, 0, 1)">q指的是只列出容器的ID<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">rmi       Remove one or more images   <br></span></strong></span>            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">删除镜像</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">run       Run a command </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">in a new</span></strong><span style="color: rgba(0, 0, 0, 1)"><strong><span style="color: rgba(255, 0, 0, 1)"> container</span></strong>   <br>            <span style="color: rgba(0, 0, 255, 1)">--让创建的容器立刻进入运行状态,该命令等同于docker create创建容器后再使用docker start启动容器</span><br>
   <strong><span style="color: rgba(255, 0, 0, 1)"> save      Save an image(s) to a tar archive
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">将镜像打包,与上面的load命令相对应</span>
            譬如:
            docker save </span>-<span style="color: rgba(0, 0, 0, 1)">o nginx.tar nginx<br>
    <strong><span style="color: rgba(255, 0, 0, 1)">search    Search the Docker Hub </span></strong></span><strong><span style="color: rgba(255, 0, 0, 1)">for images</span></strong>   <br>            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">从Docker Hub中搜索镜像</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">start   Start one or more stopped containers
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">启动容器</span><br>
   <strong><span style="color: rgba(255, 0, 0, 1)"> stats   Display a live stream of container(s) resource usage statistics
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--动态显示容器的资源消耗情况,包括:CPU、内存、网络I/</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">O</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">stop      Stop a running container</span> </strong><br></span>            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">停止一个运行的容器</span><br>
<strong><span style="color: rgba(255, 0, 0, 1)">tag       Tag an image into a repository
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">对镜像进行重命名</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">top       Display the running processes of a container
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看容器中正在运行的进程</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">unpause   Unpause all processes within a container
            </span></strong></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">恢复容器内暂停的进程,与pause参数相对应</span><br>
    <strong><span style="color: rgba(255, 0, 0, 1)">version   Show the Docker version information</span> </strong><br></span>            <span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">查看docker的版本</span><br>
    <span style="color: rgba(255, 0, 0, 1)">wait      Block until a container stops, then print its exit code
            </span></span><span style="color: rgba(0, 0, 255, 1)">--</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 255, 1)">捕捉容器停止时的退出码</span>
            执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。

Run </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">docker COMMAND --help</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">for</span> more information on a command.</pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/ivictor/p/4791274.html
頁: [1]
查看完整版本: Docker命令详解