(六)另外的15个Docker命令
最后更新于:2022-04-01 23:05:04
# Docker入门教程(六)另外的15个Docker命令
> 【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令。之前的第二篇文章中我们就介绍了一些基本的Docker命令,本文过后,你将会接触到所有的Docker常用命令。努力学习吧。
在[之前的文章](http://dockerone.com/article/102)中,我们介绍了15个Docker命令,并分享了它们的实践经验。在这篇文章中,我们将学习另外的15个Docker命令。它们分别是:
daemon:
Docker daemon是一个用于管理容器的后台进程。一般情况下,守护进程是一个长期运行的用来处理请求的进程服务。`-d`参数用于运行后台进程。
build:
如之前所讨论的,可以使用Dockerfile来构建镜像。简单的构建命令如下:
`docker build [options] PATH | URL`
还有一些Docker提供的额外选项,如:
`--rm=true`表示构建成功后,移除所有中间容器
`--no-cache=false`表示在构建过程中不使用缓存
下面是一张使用`Docker build`命令的截图。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/8f96ede1922c7d4401debcc23cfaf3de_591x469.png)
attach:
Docker允许使用`attach`命令与运行中的容器交互,并且可以随时观察容器內进程的运行状况。退出容器可以通过两种方式来完成:
* Ctrl+C 直接退出
* Ctrl-\ 退出并显示堆栈信息(stack trace)
`attach`命令的语法是:
`docker attach container`
下面是一张显示执行`attach`命令的截图。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/e101caf08c07c9d0dc82f4e652c5ce3c_975x362.png)
diff:
Docker提供了一个非常强大的命令`diff`,它可以列出容器内发生变化的文件和目录。这些变化包括添加(A-add)、删除(D-delete)、修改(C-change)。该命令便于Debug,并支持快速的共享环境。
语法是:
`docker diff container`
截图显示`diff`的执行。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/d2bdb8dd16c96b98d98737ebd97432df_916x272.png)
events:
打印指定时间内的容器的实时系统事件。
import:
Docker可以导入远程文件、本地文件和目录。使用HTTP的URL从远程位置导入,而本地文件或目录的导入需要使用`-`参数。从远程位置导入的语法是:
`docker import http://example.com/example.tar`
截图表示本地文件:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/8c00b1e86c09d3bf2d31d460adcfd204_783x194.png)
export:
类似于`import`,`export`命令用于将容器的系统文件打包成tar文件。
下图描述了其执行过程:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2974f6a4137761d1485ad8bcbbb849e0_1298x237.png)
cp:
这个命令是从容器内复制文件到指定的路径上。语法如下:
`docker cp container:path hostpath.`
截图展示了`cp`命令的执行。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/10950e66bcf03f86a0d7893d11ce88d5_899x191.png)
login:
此命令用来登录到Docker registry服务器,语法如下:
`docker login [options] [server]`
如要登录自己主机的registry请使用:
`docker login localhost:8080`
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/de2ef9915360d7f32f122517b24c7db8_759x229.png)
inspect:
`Docker inspect`命令可以收集有关容器和镜像的底层信息。这些信息包括:
* 容器实例的IP地址
* 端口绑定列表
* 特定端口映射的搜索
* 收集配置的详细信息
该命令的语法是:
`docker inspect container/image`
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/1e033817889596d8930f7b4386ec6526_1298x174.png)
kill:
发送`SIGKILL`信号来停止容器的主进程。语法是:
`docker kill [options] container`
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/23966c42b35d6494396e83cc54ec7bb9_1260x241.png)
rmi:
该命令可以移除一个或者多个镜像,语法如下:
`docker rmi image`
镜像可以有多个标签链接到它。在删除镜像时,你应该确保删除所有相关的标签以避免错误。下图显示了该命令的示例。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/6878294968f1770cc76454add4f8aeca_909x203.png)
wait:
阻塞对指定容器的其它调用方法,直到容器停止后退出阻塞。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/4e859774019718a29e5e2e5d439f8788_602x100.png)
load:
该命令从tar文件中载入镜像或仓库到`STDIN`。
截图显示载入`app_box.tar`到`STDIN`:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/10950e66bcf03f86a0d7893d11ce88d5_899x191.png)
save:
类似于`load`,该命令保存镜像为tar文件并发送到`STDOUT`。语法如下:
`docker save image`
简单截图示例如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/021f856cd34c03388edf213ce083ac11_949x208.png)
[Docker系列教程的下一篇文章](http://dockerone.com/article/107)我们将探讨Docker APIs。
> 出处:http://dockone.io/article/106
> 原文链接:[Part 6: The Next 15 Commands](http://flux7.com/blogs/docker/docker-commands/)(翻译:[田浩浩](https://github.com/llitfkitfk) 审校:李颖杰)
';