GVKun编程网logo

Docker 常用命令总结(docker常用命令详解)

11

对于想了解Docker常用命令总结的读者,本文将提供新的信息,我们将详细介绍docker常用命令详解,并且为您提供关于cnetos7下安装Docker已经docker常用命令总结、DockerforW

对于想了解Docker 常用命令总结的读者,本文将提供新的信息,我们将详细介绍docker常用命令详解,并且为您提供关于cnetos7 下安装 Docker 已经 docker 常用命令总结、Docker for Windows(三)Docker镜像与容器的区别&常用命令、Docker 入门 --- 命令总结、docker 入门到实战(三)docker常用命令的有价值信息。

本文目录一览:

Docker 常用命令总结(docker常用命令详解)

Docker 常用命令总结(docker常用命令详解)

<divdata-v-0759750a=""data-v-75a8d7e8=""> <h1data-v-0759750a=""id="autoid-0-0-0"><span data-v-0759750a="">Docker 常用命令总结 </span></h1> <divdata-v-0759750a="">&nbsp;<img src="https://img2018.cnblogs.com/blog/1328551/201812/1328551-20181213140822537-1456493941.png"alt=""> <p>&nbsp;</p> </div> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label0"></a></div><h2 id="autoid-0-0-0"><span> 镜像相关 </span></h2> <h3 id="autoid-1-0-0"> 搜索 </h3> <p><code>docker search *image_name*</code></p> <h3 id="autoid-1-1-0"> 下载 </h3> <p><code>docker pull *image_name*</code></p> <h3 id="autoid-1-2-0"> 查看 </h3> <p><code>docker images</code><br><code>docker image ls</code></p> <h3 id="autoid-1-3-0"> 删除 </h3> <p><code>docker rmi *image_name*</code><br><code>docker image rm *image_name*</code></p>

<a id="more"></a>

<h3 id="autoid-1-4-0"> 导出 docker 镜像 </h3> <p><code>docker save *image_name* &gt; /save/image/path/name.tar.gz</code></p> <h3 id="autoid-1-5-0"> 导入 docker 镜像 </h3> <p><code>docker load &lt; /save/image/path/name.tar.gz</code></p> <h3 id="autoid-1-6-0"> 提交创建的自定义的镜像 </h3> <p><code>docker commit *container_id* * 镜像名称 *</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span><br><span>10</span><br><span>11</span><br><span>12</span><br><span>13</span><br><span>14</span><br><span>15</span><br><span>16</span><br><span>17</span><br><span>18</span><br><span>19</span><br><span>20</span><br><span>21</span><br><span>22</span><br><span>23</span><br><span>24</span><br><span>25</span><br><span>26</span><br><span>27</span><br><span>28</span><br><span>29</span><br><span>30</span><br><span>31</span><br><span>32</span><br><span>33</span><br><span>34</span><br><span>35</span><br><span>36</span><br><span>37</span><br><span>38</span><br><span>39</span><br><span>40</span><br><span>41</span><br><span>42</span><br><span>43</span><br><span>44</span><br><span>45</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker images</span><br><span>REPOSITORY TAG IMAGE ID CREATED SIZE</span><br><span>docker.io/centos latest 1e1148e4cc2c 6 days ago 202 MB</span><br><span>docker.io/ubuntu latest 93fd78260bd1 3 weeks ago 86.2 MB</span><br><span>docker.io/hello-world latest 4ab4c602aa5e 3 months ago 1.84 kB</span><br><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>6ecddae6e645 centos "bash" 21 minutes ago Exited (0) About a minute ago boring_mestorf</span><br><span># 进入容器,执行一些安装的过程省略 </span><br><span># 对容器进行一些自定制的操作后,提交这个容器生成新的镜像 </span><br><span>[root@c7-dev ~]# docker commit 6ecdd gandoufu/centos-wget</span><br><span>sha256:bac2d675a9c230f0a60b0af35b5d4e3cb337d7c6f122a05b60a9172ddb9fbda0</span><br><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>6ecddae6e645 centos "bash" 24 minutes ago Exited (0) 4 minutes ago boring_mestorf</span><br><span>[root@c7-dev ~]# docker images</span><br><span>REPOSITORY TAG IMAGE ID CREATED SIZE</span><br><span>gandoufu/centos-wget latest bac2d675a9c2 16 seconds ago 328 MB</span><br><span>docker.io/centos latest 1e1148e4cc2c 6 days ago 202 MB</span><br><span>docker.io/ubuntu latest 93fd78260bd1 3 weeks ago 86.2 MB</span><br><span>docker.io/hello-world latest 4ab4c602aa5e 3 months ago 1.84 kB</span><br><br><span># 将生成的新的镜像推送至远程仓库 </span><br><span>[root@c7-dev ~]# docker login</span><br><span>Username: gandoufu</span><br><span>Password:</span><br><span>Login Succeeded</span><br><span>[root@c7-dev ~]# docker images</span><br><span>REPOSITORY TAG IMAGE ID CREATED SIZE</span><br><span>gandoufu/centos-wget latest bac2d675a9c2 10 minutes ago 328 MB</span><br><span>docker.io/centos latest 1e1148e4cc2c 6 days ago 202 MB</span><br><span>docker.io/ubuntu latest 93fd78260bd1 3 weeks ago 86.2 MB</span><br><span>docker.io/hello-world latest 4ab4c602aa5e 3 months ago 1.84 kB</span><br><span>[root@c7-dev ~]# docker tag bac2 gandoufu/centos7-wget:latest</span><br><span>[root@c7-dev ~]# docker images</span><br><span>REPOSITORY TAG IMAGE ID CREATED SIZE</span><br><span>gandoufu/centos-wget latest bac2d675a9c2 12 minutes ago 328 MB</span><br><span>gandoufu/centos7-wget latest bac2d675a9c2 12 minutes ago 328 MB</span><br><span>docker.io/centos latest 1e1148e4cc2c 6 days ago 202 MB</span><br><span>docker.io/ubuntu latest 93fd78260bd1 3 weeks ago 86.2 MB</span><br><span>docker.io/hello-world latest 4ab4c602aa5e 3 months ago 1.84 kB</span><br><span>[root@c7-dev ~]# docker push gandoufu/centos7-wget</span><br><span>The push refers to a repository [docker.io/gandoufu/centos7-wget]</span><br><span>f79b6b9e2fa6: Pushing [==================================================&gt;] 129.6 MB</span><br><span>071d8bd76517: Pushed</span></pre> </td> </tr> </tbody> </table> <p > 打标签时的注意事项:<br><code>docker tag bac2 gandoufu/centos7-wget</code><br>bac2 是镜像的 id<br>gandoufu/centos7-wget 镜像的名称必须是自己的 id 名称 / 镜像名称 < br>latest 默认版本号,可以不用加 </p> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label1"></a></div><h2 id="autoid-1-7-0"><span> 容器相关 </span></h2> <h3 id="autoid-2-0-0"> 新建容器 </h3> <p>docker create <em>image_name</em><br>docker create -t -i <em>image_name</em> bash<br>docker run <em>image_name</em><br>docker run <em>image_name</em> /bin/echo “haha”<br>docker run -it -d <em>image_name</em><br>docker run -it -d –rm –name mydo <em>image_name</em></p> <p > 使用 create 创建的容器,在使用时需要先 start 对应的容器;<br > 使用 run 创建的容器,直接运行;如果指定的 < code>image_name</code > 不存在,则会去镜像仓库下载镜像,然后根据镜像创建容器。</p> <blockquote> <p > 参数说明:<br>i 进入交互模式 < br>t 创建一个虚拟终端 < br>d 后台运行 < br>rm 退出后自动删除容器 < br>name 创建的容器使用自定义的名字 < br > 注:i 和 t 参数一起指定(-it),在实际操作时发现只指定 i 参数时,attach 到实例时会出现卡死的情况。</p>

</blockquote> <h3 id="autoid-2-1-0"> 进入容器 </h3> <p><code>docker attach *container_id|container_name*</code><br > 根据容器的 id 或名字进入指定的容器;如果容器处于未运行状态,需要先启动容器 < code>docker start container_id</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span><br><span>10</span><br><span>11</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 22 minutes ago Exited (0) 3 seconds ago hungry_franklin</span><br><span>[root@c7-dev ~]#</span><br><span>[root@c7-dev ~]# docker start aefe</span><br><span>aefe</span><br><span>[root@c7-dev ~]# docker attach aefe</span><br><br><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 20 minutes ago Up 16 seconds hungry_franklin</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <h3 id="autoid-2-2-0"> 使用运行的容器执行命令 </h3> <p><code>docker exec *container_id* command</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker ps</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 15 minutes ago Up 15 minutes hungry_franklin</span><br><span>[root@c7-dev ~]# docker exec aefe date</span><br><span>Wed Dec 12 14:04:12 UTC 2018</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <h3 id="autoid-2-3-0"> 查看容器 </h3> <p><code>docker ps</code><br><code>docker ps -a</code><br><code>docker ps -aq</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span><br><span>10</span><br><span>11</span><br><span>12</span><br><span>13</span><br><span>14</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker run -it -d centos bash</span><br><span>aefe7162ed163028c36741c26545dc0f1967ada0c985ce32cee5cf79666d2a3b</span><br><span>[root@c7-dev ~]# docker create -it --name myubun ubuntu</span><br><span>3ba687940aed4a65bfc0656ea23ab627eab71ec4c3bd796ab107674503dd6f72</span><br><span>[root@c7-dev ~]# docker ps</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 45 seconds ago Up 45 seconds hungry_franklin</span><br><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>3ba687940aed ubuntu "/bin/bash" 9 seconds ago Created myubun</span><br><span>aefe7162ed16 centos "bash" 47 seconds ago Up 47 seconds hungry_franklin</span><br><span>[root@c7-dev ~]# docker ps -aq</span><br><span>3ba687940aed</span><br><span>aefe7162ed16</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <h3 id="autoid-2-4-0"> 停止容器 </h3> <p><code>docker stop *container_id*</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker ps</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 18 minutes ago Up 18 minutes hungry_franklin</span><br><span>[root@c7-dev ~]# docker stop aefe</span><br><span>aefe</span><br><span>[root@c7-dev ~]# docker ps</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <h3 id="autoid-2-5-0"> 删除容器 </h3> <p><code>docker rm *container_id*</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>3ba687940aed ubuntu "/bin/bash" 16 minutes ago Created myubun</span><br><span>aefe7162ed16 centos "bash" 17 minutes ago Up 17 minutes hungry_franklin</span><br><span>[root@c7-dev ~]# docker rm myubun</span><br><span>myubun</span><br><span>[root@c7-dev ~]# docker ps -a</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>aefe7162ed16 centos "bash" 17 minutes ago Up 17 minutes hungry_franklin</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label2"></a></div><h2 id="autoid-2-6-0"><span> 仓库相关 </span></h2> <h3 id="autoid-3-0-0"> 登录 / 退出仓库 </h3> <p><code>docker [login/logout] [仓库地址]</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker login daocloud.io</span><br><span>Username: gandoufu</span><br><span>Password:</span><br><span>Login Succeeded</span><br><br><span>[root@c7-dev ~]# docker logout daocloud.io</span><br><span>Removing login credentials for daocloud.io</span></pre> </td> </tr> </tbody> </table> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label3"></a></div><h2 id="autoid-3-1-0"> 外部访问容器 </h2> <p > 先下载一个 < code>training/webapp</code > 镜像,用于测试 </p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span><br><span>10</span><br><span>11</span><br><span>12</span><br><span>13</span><br><span>14</span><br><span>15</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker run -d -P training/webapp python app.py</span><br><span>e8c1832a9814d61c61faf3d472b40c1164cd410caad855415f3bc56668f0cc2a</span><br><span>[root@c7-dev ~]# docker ps</span><br><span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span><br><span>e8c1832a9814 training/webapp "python app.py" 4 seconds ago Up 3 seconds 0.0.0.0:32768-&gt;5000/tcp tender_cori</span><br><span>[root@c7-dev ~]# docker port e8c</span><br><span>5000/tcp -&gt; 0.0.0.0:32768</span><br><span>[root@c7-dev ~]# docker top e8c1</span><br><span>UID PID PPID C STIME TTY TIME CMD</span><br><span>root 1781 1767 0 10:19 ? 00:00:00 python app.py</span><br><br><span>[root@c7-dev ~]# docker run -d -p 8000:5000 --name flask training/webapp python app.py</span><br><span>fef819097329bf7eb90fcf868a4a047b39e62b300c7e30105c38d1adf7fbf10e</span><br><span>[root@c7-dev ~]# docker port fef8</span><br><span>5000/tcp -&gt; 0.0.0.0:8000</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <p > 通过 webapp 镜像创建运行容器,在容器内运行一个简单的 web 应用,端口为 5000。</p> <blockquote> <p > 参数说明:<br>-P 会使用宿主机的一个随机端口映射到容器内的 5000 端口;外部访问 ip + 随机端口就可以访问容器内的外部应用 < br>-p 指定外部端口与内部端口映射关系。外部端口:内部端口 </p>

</blockquote> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label4"></a></div><h2 id="autoid-4-0-0"><span> 硬件资源相关 </span></h2> <h3 id="autoid-5-0-0"> 显示容器硬件资源使用情况 </h3> <p><code>docker stats [OPTIONS] [CONTAINER...]</code></p> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span></pre> </td> <td> <pre><span>[root@c7-dev ~]# docker stats --no-stream</span><br><span>CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS</span><br><span>3e7563aef10e 0.03% 10.9 MiB / 991.7 MiB 1.10% 2.59 kB / 2.22 kB 0 B / 0 B 1</span></pre> </td> </tr> </tbody> </table> <p>&nbsp;</p> <p > 如果不加 < code>--no-stream</code > 参数,会实时刷新显示资源使用情况。</p> <h3 id="autoid-5-1-0"> 更新容器的硬件资源限制 </h3> <table> <tbody> <tr> <td> <pre><span>1</span><br><span>2</span><br><span>3</span><br><span>4</span><br><span>5</span><br><span>6</span><br><span>7</span><br><span>8</span><br><span>9</span><br><span>10</span><br><span>11</span><br><span>12</span><br><span>13</span><br><span>14</span><br><span>15</span><br><span>16</span><br><span>17</span><br><span>18</span></pre> </td> <td> <pre><span># 创建容器的时候,限制内存 </span><br><span>[root@c7-dev ~]# docker run -it -d -m 100M --memory-swap -1 --name mycent centos</span><br><span>32d70771e7c88b70caaca4c8e7428421a0906dde6358d77441104a6162032447</span><br><span>[root@c7-dev ~]# docker stats --no-stream 32d7</span><br><span>CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS</span><br><span>32d7 0.00% 380 KiB / 100 MiB 0.37% 648 B / 648 B 0 B / 0 B 1</span><br><br><span># 更新内存限制 </span><br><span>[root@c7-dev ~]# docker update -m 200M --memory-swap -1 32d7</span><br><span>32d7</span><br><span>[root@c7-dev ~]#</span><br><span>[root@c7-dev ~]#</span><br><span>[root@c7-dev ~]# docker stats --no-stream 32d7</span><br><span>CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS</span><br><span>32d7 0.00% 380 KiB / 200 MiB 0.19% 648 B / 648 B 0 B / 0 B 1</span><br><br><span>[root@c7-dev ~]# docker update -m 400M 32d7</span><br><span>Error response from daemon: Cannot update container 32d70771e7c88b70caaca4c8e7428421a0906dde6358d77441104a6162032447: Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same time</span></pre> </td> </tr> </tbody> </table> <blockquote> <p > 注意:指定限制内存大小并且设置 memory-swap 值为 -1,表示容器程序使用内存受限,而 swap 空间使用不受限制(宿主 swap 支持使用多少则容器即可使用多少。如果 –memory-swap 设置小于 –memory 则设置不生效,使用默认设置)。<br><code>docker run -it --rm -m 100M ubuntu-stress:latest /bin/bash</code><br > 如果不添加–memory-swap 选项,则表示容器中程序可以使用 100M 内存和 100Mswap 内存,默认情况下,–memory-swap 会被设置成 memory 的 2 倍。-m 为物理内存上限,而 –memory-swap 则是 memory + swap 之和,当压测值是 –memory-swap 上限时,则容器中的进程会被直接 OOM kill。</p>

</blockquote> <p>&nbsp;</p> <div><a href="#_labelTop"> 回到顶部 </a><a name="_label5"></a></div><h2 id="autoid-5-2-0"><span>Docker 命令参考表 </span></h2> <h3 id="autoid-6-0-0">docker 命令选项列表 </h3> <table> <thead> <tr><th > 选项 </th><th > 说明 </th><th > 其他 </th> </tr>

</thead> <tbody> <tr> <td>–config [string]</td> <td > 客户端本地配置文件路径 </td> <td > 默认为 <code>~/.docker</code></td>

</tr> <tr> <td>-D, –debug</td> <td > 启用调试模式 </td> <td>&nbsp;</td>

</tr> <tr> <td>–help</td> <td > 打印用法 </td> <td>&nbsp;</td>

</tr> <tr> <td>-H, –host list</td> <td > 通过 socket 访问指定的 docker 守护进程 (服务端)</td> <td><code>unix://</code> , <code>fd://</code> , <code>tcp://</code></td>

</tr> <tr> <td>-l, –log-level [string]</td> <td > 设置日志级别 (<code>debug</code> 、<code>info</code> 、<code>warn</code> 、<code>error</code> 、<code>fatal</code>)</td> <td > 默认为 <code>info</code></td>

</tr> <tr> <td>–tls</td> <td > 启用 TLS 加密 </td> <td>&nbsp;</td>

</tr> <tr> <td>–tlscacert [string]</td> <td > 指定信任的 CA 根证书路径 </td> <td > 默认为 <code>~/.docker/ca.pem</code></td>

</tr> <tr> <td>–tlscert [string]</td> <td > 客户端证书路径 </td> <td > 默认为 <code>~/.docker/cert.pem</code></td>

</tr> <tr> <td>–tlskey [string]</td> <td > 客户端证书私钥路径 </td> <td > 默认为 <code>~/.docker/key.pem</code></td>

</tr> <tr> <td>–tlsverify</td> <td > 启用 TLS 加密并验证客户端证书 </td> <td>&nbsp;</td>

</tr> <tr> <td>-v, –version</td> <td > 打印 docker 客户端版本信息 </td>

</tr>

</tbody>

</table> <h3 id="autoid-6-1-0"> 用于管理的子命令列表 </h3> <table> <thead> <tr><th > 选项 </th><th > 说明 </th> </tr>

</thead> <tbody> <tr> <td>container</td> <td > 管理容器 </td>

</tr> <tr> <td>image</td> <td > 管理镜像 </td>

</tr> <tr> <td>network</td> <td > 管理容器网络 (默认为 bridge、host、none 三个网络配置)</td>

</tr> <tr> <td>plugin</td> <td > 管理插件 </td>

</tr> <tr> <td>system</td> <td > 管理系统资源。其中,<code>docker system prune</code> 命令用于清理没有使用的镜像,容器,数据卷以及网络 </td>

</tr> <tr> <td>volume</td> <td > 管理数据卷 </td>

</tr> <tr> <td>swarm</td> <td > 管理 Swarm 模式 </td>

</tr> <tr> <td>service</td> <td > 管理 Swarm 模式下的服务 </td>

</tr> <tr> <td>node</td> <td > 管理 Swarm 模式下的 docker 集群中的节点 </td>

</tr> <tr> <td>secret</td> <td > 管理 Swarm 模式下的敏感数据 </td>

</tr> <tr> <td>stack</td> <td>Swarm 模式下利用 compose-file 管理服务 </td>

</tr>

</tbody>

</table> <h3 id="autoid-6-2-0"> 基础子命令列表 </h3> <table> <thead> <tr><th > 选项 </th><th > 说明 </th> </tr>

</thead> <tbody> <tr> <td>attach</td> <td > 进入运行中的容器,显示该容器的控制台界面。注意,从该指令退出会导致容器关闭 </td>

</tr> <tr> <td>build</td> <td > 根据 Dockerfile 文件构建镜像 </td>

</tr> <tr> <td>commit</td> <td > 提交容器所做的改为为一个新的镜像 </td>

</tr> <tr> <td>cp</td> <td > 在容器和宿主机之间复制文件 </td>

</tr> <tr> <td>create</td> <td > 根据镜像生成一个新的容器 </td>

</tr> <tr> <td>diff</td> <td > 展示容器相对于构建它的镜像内容所做的改变 </td>

</tr> <tr> <td>events</td> <td > 实时打印服务端执行的事件 </td>

</tr> <tr> <td>exec</td> <td > 在已运行的容器中执行命令 </td>

</tr> <tr> <td>export</td> <td > 导出容器到本地快照文件 </td>

</tr> <tr> <td>history</td> <td > 显示镜像每层的变更内容 </td>

</tr> <tr> <td>images</td> <td > 列出本地所有镜像 </td>

</tr> <tr> <td>import</td> <td > 导入本地容器快照文件为镜像 </td>

</tr> <tr> <td>info</td> <td > 显示 Docker 详细的系统信息 </td>

</tr> <tr> <td>inspect</td> <td > 查看容器或镜像的配置信息,默认为 json 数据 </td>

</tr> <tr> <td>kill</td> <td><code>-s</code> 选项向容器发送信号,默认为 SIGKILL 信号 (强制关闭)</td>

</tr> <tr> <td>load</td> <td > 导入镜像压缩包 </td>

</tr> <tr> <td>login</td> <td > 登录第三方仓库 </td>

</tr> <tr> <td>logout</td> <td > 退出第三方仓库 </td>

</tr> <tr> <td>logs</td> <td > 打印容器的控制台输出内容 </td>

</tr> <tr> <td>pause</td> <td > 暂停容器 </td>

</tr> <tr> <td>port</td> <td > 容器端口映射列表 </td>

</tr> <tr> <td>ps</td> <td > 列出正在运行的容器,<code>-a</code> 选项显示所有容器 </td>

</tr> <tr> <td>pull</td> <td > 从镜像仓库拉取镜像 </td>

</tr> <tr> <td>push</td> <td > 将镜像推送到镜像仓库 </td>

</tr> <tr> <td>rename</td> <td > 重命名容器名 </td>

</tr> <tr> <td>restart</td> <td > 重启容器 </td>

</tr> <tr> <td>rm</td> <td > 删除已停止的容器,<code>-f</code> 选项可强制删除正在运行的容器 </td>

</tr> <tr> <td>rmi</td> <td > 删除镜像 (必须先删除该镜像构建的所有容器)</td>

</tr> <tr> <td>run</td> <td > 根据镜像生成并进入一个新的容器 </td>

</tr> <tr> <td>save</td> <td > 打包本地镜像,使用压缩包来完成迁移 </td>

</tr> <tr> <td>search</td> <td > 查找镜像 </td>

</tr> <tr> <td>start</td> <td > 启动关闭的容器 </td>

</tr> <tr> <td>stats</td> <td > 显示容器对资源的使用情况 (内存、CPU、磁盘等)</td>

</tr> <tr> <td>stop</td> <td > 关闭正在运行的容器 </td>

</tr> <tr> <td>tag</td> <td > 修改镜像 tag</td>

</tr> <tr> <td>top</td> <td > 显示容器中正在运行的进程 (相当于容器内执行 <code>ps -ef</code> 命令)</td>

</tr> <tr> <td>unpause</td> <td > 恢复暂停的容器 </td>

</tr> <tr> <td>update</td> <td > 更新容器的硬件资源限制 (内存、CPU 等)</td>

</tr> <tr> <td>version</td> <td > 显示 docker 客户端和服务端版本信息 </td>

</tr> <tr> <td>wait</td> <td > 阻塞当前命令直到对应的容器被关闭,容器关闭后打印结束代码 </td>

</tr> <tr> <td>daemon</td> <td > 这个子命令已过期,将在 Docker 17.12 之后的版本中移出,直接使用 dockerd</td>

</tr>

</tbody>

</table> <h3 id="autoid-6-3-0">run 命令常用选项 </h3> <table> <thead> <tr><th > 选项 </th><th > 说明 </th> </tr>

</thead> <tbody> <tr> <td>-d</td> <td > 后台运行容器,并返回容器 ID;不指定时,启动后开始打印日志,<code>Ctrl + C</code> 退出命令同时会关闭容器 </td>

</tr> <tr> <td>-i</td> <td > 以交互模式运行容器,通常与 -t 同时使用;</td>

</tr> <tr> <td>-t</td> <td > 为容器重新分配一个伪输入终端,通常与 -i 同时使用 </td>

</tr> <tr> <td>–name “anyesu-container”</td> <td > 为容器指定一个别名,不指定时随机生成 </td>

</tr> <tr> <td>-h docker-anyesu</td> <td > 设置容器的主机名,默认随机生成 </td>

</tr> <tr> <td>–dns 8.8.8.8</td> <td > 指定容器使用的 DNS 服务器,默认和宿主一致 </td>

</tr> <tr> <td>-e docker_host=172.17.0.1</td> <td > 设置环境变量 </td>

</tr> <tr> <td>–cpuset=”0-2” or –cpuset=”0,1,2”</td> <td > 绑定容器到指定 CPU 运行 </td>

</tr> <tr> <td>-m 100M</td> <td > 设置容器使用内存最大值 </td>

</tr> <tr> <td>–net bridge</td> <td > 指定容器的网络连接类型,支持 <code>bridge</code> / <code>host</code> / <code>none</code> / <code>container</code> 四种类型 </td>

</tr> <tr> <td>–ip 172.18.0.13</td> <td > 为容器分配固定 ip (需要使用自定义网络)</td>

</tr> <tr> <td>–expose 8081 –expose 8082</td> <td > 开放一个端口或一组端口,会覆盖镜像设置中开放的端口 </td>

</tr> <tr> <td>-p [宿主机端口]:[容器内端口]</td> <td > 宿主机到容器的端口映射,可指定宿主机的要监听的 ip, 默认为 <code>0.0.0.0</code></td>

</tr> <tr> <td>-P</td> <td > 注意是大写的,宿主机随机指定一组可用的端口映射容器 <code>expose</code> 的所有端口 </td>

</tr> <tr> <td>-v [宿主机目录路径]:[容器内目录路径]</td> <td > 挂载宿主机的指定目录 (或文件) 到容器内的指定目录 (或文件)</td>

</tr> <tr> <td>–add-host [主机名]:[ip]</td> <td > 为容器 hosts 文件追加 host, 默认会在 hosts 文件最后追加 <code>[主机名]:[容器 ip]</code></td>

</tr> <tr> <td>–volumes-from [其他容器名]</td> <td > 将其他容器的数据卷添加到此容器 </td>

</tr> <tr> <td>–link [其他容器名]:[在该容器中的别名]</td> <td > 添加链接到另一个容器,在本容器 hosts 文件中加入关联容器的记录,效果类似于 <code>--add-host</code></td>

</tr>

</tbody>

</table> <p>&nbsp;</p> <divdata-v-0759750a=""><img src="https://img2018.cnblogs.com/blog/1328551/201812/1328551-20181213140747902-888532965.png" alt=""> <p><img src="https://img2018.cnblogs.com/blog/1328551/201812/1328551-20181213140755142-1304198105.png" alt=""></p> <p>&nbsp;</p>

</div> <divdata-v-0759750a="">&nbsp;</div>

</div> 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10113688.html

cnetos7 下安装 Docker 已经 docker 常用命令总结

cnetos7 下安装 Docker 已经 docker 常用命令总结

1: 使用 yum 直接安装 Docker

yum install docker

2: 测试是否安装成功:

# 输入命令docker -v 查看docker是否安装成功
docker -v

3. 启动 docker 进程

# 启动 docker 
systemctl start docker
# 重启 docker
systemctl restart docker
# 停止docker服务
systemctl stop docker
# 查看当前docker是否启动
ps -A | grep docker

4.docker 常用的命令总结:

# 列出本地所有的镜像,后面可以加 grep 过滤查询,如docker images | grep mysql
docker images

# 在Docker Hub上查找相关的镜像,比如这里需要查mysql相关的镜像
docker search mysql

# 列出本地所有的容器信息
docker ps -a

# 删除本地的镜像
docker rmi 镜像ID

# 删除本地容器
docker rm 容器ID

# 从docker hub中获取镜像,比如这里要获取mysql5.6的镜像
# 实际是去https://hub.docker.com/获取mysql镜像,且标签是5.6
docker pull mysql:5.6

# 使用镜像启动(运行)一个容器
# -i 让容器的标准输入保持打开
# -t 给docker分配一个终端并绑定到容器的标准输入上
# -d 让容器后台运行
# -p 容器端口和本机端口映射,第一个端口是本机端口,第二个是容器端口
# -v 本机目录挂载到容器的目录
docker run -d -p 127.0.0.1:3306:3306 mysql:5.6

# 进入一个在后台运行的容器终端
docker exec -it 容器ID /bin/bash

# 启动已经停止的容器
docker start 容器ID

# 停止运行中的容器
docker stop 容器ID

# 重启一个容器
docker restart 容器ID

 

Docker for Windows(三)Docker镜像与容器的区别&常用命令

Docker for Windows(三)Docker镜像与容器的区别&常用命令

Docker镜像(Image)是一堆只读文件(read-only layer),容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
容器 = 镜像 + 读写层。

Docker常用命令:

docker version显示 Docker 版本信息
docker info显示 Docker 系统信息,包括镜像和容器数
docker pull <image-id>拉取或者更新指定镜像
docker create <image-id>创建镜像
docker create 命令为指定的镜像(image)添加了一个可读写层,构成了一个新的容器。注意,这个容器并没有运行。


docker start <container-id>启动容器
docker start命令为容器文件系统创建了一个进程隔离空间。注意,每一个容器只能够有一个进程隔离空间。


docker run <image-id>启动镜像
看到这个命令,读者通常会有一个疑问:docker start 和 docker run命令有什么区别。


实际上,docker run 命令先是利用镜像创建了一个容器,然后运行这个容器。这个命令非常的方便,并且隐藏了两个命令的细节,但从另一方面来看,这容易让用户产生误解。


docker ps 查看所有运行中的容器。
这隐藏了非运行态容器的存在,如果想要找出这些容器,我们需要使用docker ps –a这个命令。


docker images 命令会列出所有顶层镜像。
实际上,在这里我们没有办法区分一个镜像和一个只读层,所以我们提出了top-level镜像。只有创建容器时使用的镜像或者是直接pull下来的镜像能被称为顶层(top-level)镜像,并且每一个顶层镜像下面都隐藏了多个镜像层。


docker images –a命令列出了所有的镜像,也可以说是列出了所有的可读层。如果你想要查看某一个image-id下的所有层,可以使用docker history来查看。


docker stop <container-id>停止所有的进程docker stop命令会向运行中的容器发送一个SIGTERM的信号,然后停止所有的进程。


docker kill <container-id>杀死进程,docker kill 命令向所有运行在容器中的进程发送了一个不友好的SIGKILL信号。


docker rm <container-id>命令会移除构成容器的可读写层。注意,这个命令只能对非运行态容器执行。


docker rmi <image-id>命令会移除构成镜像的一个只读层。你只能够使用docker rmi来移除最顶层(top level layer)(也可以说是镜像),你也可以使用-f参数来强制删除中间的只读层。


docker commit <container-id>命令将容器的可读写层转换为一个只读层,这样就把一个容器转换成了不可变的镜像。


docker build我们从上图可以看到,build命令根据Dockerfile文件中的FROM指令获取到镜像,然后重复地1)run(create和start)、2)修改、3)commit。在循环中的每一步都会生成一个新的层,因此许多新的层会被创建。


docker exec <running-container-id>docker exec 命令会在运行中的容器执行一个新进程。


docker inspect <container-id>查看这个容器的详细信息,例如查看运行的数据库服务的连接信息。


docker save <image-id>docker save命令会创建一个镜像的压缩文件,这个文件能够在另外一个主机的Docker上使用。和export命令不同,这个命令为每一个层都保存了它们的元数据。这个命令只能对镜像生效。


docker export <container-id>docker export命令创建一个tar文件,并且移除了元数据和不必要的层,将多个层整合成了一个层,只保存了当前统一视角看到的内容(译者注:expoxt后的容器再import到Docker中,通过docker images –tree命令只能看到一个镜像;而save后的镜像则不同,它能够看到这个镜像的历史镜像)。


docker history <image-id>docker history命令递归地输出指定镜像的历史镜像。


firewall-cmd --add-port=3306/tcp开放端口
systemctl stop firewalld关闭防火墙

 

Docker 入门 --- 命令总结

Docker 入门 --- 命令总结

Docker 命令总结

前言

命令来自于官网的 get-started 教程,放在这里自用

part-1

## List Docker CLI commands
docker
docker container --help

## Display Docker version and info
docker --version
docker version
docker info

## Execute Docker image
docker run hello-world

## List Docker images
docker image ls

## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq

part-2

docker build -t friendlyhello .  # Create image using this directory''s Dockerfile
docker run -p 4000:80 friendlyhello  # Run "friendlyname" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyhello         # Same thing, but in detached mode
docker container ls                                # List all running containers
docker container ls -a             # List all containers, even those not running
docker container stop <hash>           # Gracefully stop the specified container
docker container kill <hash>         # Force shutdown of the specified container
docker container rm <hash>        # Remove specified container from this machine
docker container rm $(docker container ls -a -q)         # Remove all containers
docker image ls -a                             # List all images on this machine
docker image rm <image id>            # Remove specified image from this machine
docker image rm $(docker image ls -a -q)   # Remove all images from this machine
docker login             # Log in this CLI session using your Docker credentials
docker tag <image> username/repository:tag  # Tag <image> for upload to registry
docker push username/repository:tag            # Upload tagged image to registry
docker run username/repository:tag                   # Run image from a registry

part-3

docker stack ls                                            # List stacks or apps
docker stack deploy -c <composefile> <appname>  # Run the specified Compose file
docker service ls                 # List running services associated with an app
docker service ps <service>                  # List tasks associated with an app
docker inspect <task or container>                   # Inspect task or container
docker container ls -q                                      # List container IDs
docker stack rm <appname>                             # Tear down an application
docker swarm leave --force      # Take down a single node swarm from the manager

part-4

docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)
docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10
docker-machine env myvm1                # View basic information about your node
docker-machine ssh myvm1 "docker node ls"         # List the nodes in your swarm
docker-machine ssh myvm1 "docker node inspect <node ID>"        # Inspect a node
docker-machine ssh myvm1 "docker swarm join-token -q worker"   # View join token
docker-machine ssh myvm1   # Open an SSH session with the VM; type "exit" to end
docker node ls                # View nodes in swarm (while logged on to manager)
docker-machine ssh myvm2 "docker swarm leave"  # Make the worker leave the swarm
docker-machine ssh myvm1 "docker swarm leave -f" # Make master leave, kill swarm
docker-machine ls # list VMs, asterisk shows which VM this shell is talking to
docker-machine start myvm1            # Start a VM that is currently not running
docker-machine env myvm1      # show environment variables and command for myvm1
eval $(docker-machine env myvm1)         # Mac command to connect shell to myvm1
& "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env myvm1 | Invoke-Expression   # Windows command to connect shell to myvm1
docker stack deploy -c <file> <app>  # Deploy an app; command shell must be set to talk to manager (myvm1), uses local Compose file
docker-machine scp docker-compose.yml myvm1:~ # Copy file to node''s home dir (only required if you use ssh to connect to manager and deploy the app)
docker-machine ssh myvm1 "docker stack deploy -c <file> <app>"   # Deploy an app using ssh (you must have first copied the Compose file to myvm1)
eval $(docker-machine env -u)     # Disconnect shell from VMs, use native docker
docker-machine stop $(docker-machine ls -q)               # Stop all running VMs
docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images

docker 入门到实战(三)docker常用命令

docker 入门到实战(三)docker常用命令

本篇来自于尚硅谷周阳老师
上一篇:docker 入门到实战(二)docker安装与卸载

三:docker常用命令

3.1 帮助命令

docker version
docker info
docker --help

3.2 镜像命令

3.2.1 列出本地主机上的镜像
docker images

可以在后面添加参数[OPTIONS]

-a :列出本地所有的镜像(含中间映像层)
-q :只显示镜像ID
--digests :显示镜像的摘要信息
--no-trunc :显示完整的镜像信息

image.png

3.2.2 搜索镜像

前提
配置国内镜像加速器
目前国内访问 Docker HUB 官方的相关镜像下载比较慢,可以使用国内的一些镜像加速器,镜像保持和官方一致,关键是速度块,推荐使用。

配置阿里云个人专属的加速

image.png

重新加载

systemctl daemon-reload
systemctl restart docker

搜索镜像

docker search [OPTIONS] 镜像名字

可以在后面添加参数[OPTIONS]

--no-trunc : 显示完整的镜像描述
-s : 列出收藏数不小于指定值的镜像。
--automated : 只列出 automated build类型的镜像;

image.png

3.2.3 下载镜像

没有标注版本号默认最新版本:latest

docker pull 镜像名字[:TAG]

image.png

3.2.4 删除镜像
docker rmi 某个XXX镜像名字/ID

-f 强制删除

删除单个
docker rmi  -f 镜像ID
删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG 
全部删除
docker rmi -f $(docker images -qa)

image.png

3.3 容器命令

3.3.1 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
 OPTIONS说明(常用):有些是一个减号,有些是两个减号
 
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P 大小: 随机端口映射;
-p 小写: 指定端口映射,有以下四种格式
      ip:hostPort:containerPort
      ip::containerPort
      hostPort:containerPort
      containerPort

创建交互式容器 进入容器里面
exit 退出之后 容器停止
image.png
创建守护式容器 返回外面虚拟机
容器不停止
image.png

3.3.2 查看容器
docker ps [OPTIONS]
OPTIONS说明(常用):
 
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出。
3.3.3 退出容器
容器停止退出 : exit
容器不停止退出:ctrl+P+Q

以ctrl+P+Q形式退出
image.png

3.3.4 启动容器
docker start 容器ID或者容器名
3.3.5 停止容器
docker stop 容器ID或者容器名
3.3.6 停止容器
docker kill 容器ID或者容器名
3.3.7 删除已停止的容器
docker rm 容器ID

image.png

删除全部容器 返回容器id

docker rm -f $(docker ps -aq)

image.png

删除全部容器 返回容器id

docker ps -aq | xargs docker rm

image.png

3.3.8 查看容器日志
-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条
docker logs -f -t --tail 容器ID

image.png

3.3.9 查看容器内运行的进程
docker top 容器ID

image.png

3.3.10 查看容器内部细节
docker inspect 容器ID

image.png

3.3.11 进入正在运行的容器并以命令行交互
docker exec -it 容器ID /bin/bash

image.png

docker attach 容器ID /bin/bash

image.png

区别

  • exec 是在容器中打开新的终端,并且可以启动新的进程 在输入exit时不会关闭容器
  • attach 直接进入容器启动命令的终端,不会启动新的进程 在输入exit时会关闭容器
3.3.12 从主机拷贝文件到容器内上 主机路径 在前
docker cp 主机路径 容器ID:容器内路径

image.png

反过来也是一样 容器内拷贝到主机 容器ID:容器内路径 在前

docker cp 容器ID:容器内路径 主机路径 
3.3.13 其他命令

下载2.png

下一篇:
docker 入门到实战(四)docker镜像

关于Docker 常用命令总结docker常用命令详解的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于cnetos7 下安装 Docker 已经 docker 常用命令总结、Docker for Windows(三)Docker镜像与容器的区别&常用命令、Docker 入门 --- 命令总结、docker 入门到实战(三)docker常用命令的相关知识,请在本站寻找。

本文标签: