title: Docker命令解读(六)
date: 2015-11-24 15:57:02
tags: docker
Docker命令解读系列文章将系统讲解Docker使用的命令,方便大家学习Docker的基本操作。在写这个系列文章的时候,主要参考了Docker官方的文档,有些内容是直接的翻译。原文档地址 Docker Docs
转载请注明出处
本篇文章涉及的命令都与容器相关,主要有下面几个命令:
- create
- rm
- start
- stop
- restart
- pause
- unpause
- rename
create
命令用于创建一个容器,但与run
里面不同的是并不运行它,在你需要的时候,可以通过docker start
命令运行一个状态为created
的容器。
Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
Create a new container
更多关于docker create
命令的参数可以运行docker create --help
查看。
举例:
$ docker create -t -i fedora bash
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start -a -i 6d8af538ec5
bash-4.2#
特别的,你可以使用docker create
命令并指定-v
标识创建一个数据容器,然后在其他的容器中使用这个数据容器。例如:
$ docker create -v /data --name data ubuntu
240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
$ docker run --rm --volumes-from data ubuntu ls -la /data
total 8
drwxr-xr-x 2 root root 4096 Dec 5 04:10 .
drwxr-xr-x 48 root root 4096 Dec 5 04:11 ..
Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
-f, --force=false Force the removal of a running container (uses SIGKILL)
--help=false Print usage
-l, --link=false Remove the specified link
-v, --volumes=false Remove the volumes associated with the container
docker rm
命令用于删除一个不需要的容器,格式为:
docker rm |
需要注意的是,被删除的容器的状态必须是停止的,不能删除正在运行的容器。如果确实需要删除,可以先执行docker stop
停止后在删除,或者指定-f
(--force
)标识强制删除运行中的容器(通过发送SIGKILL
信号实现)。
docker rm
命令可以同时指定多个容器,或者使用下面的命令删除所有停止的容器:
docker rm $(docker ps -a -q)
使用上面的命令不会删除正在运行容器。
使用--link
标识可以删除两个容器之间通过--link
建立的连接,如:
docker rm --link /webapp/redis
这条命令会删除webapp容器和redis容器之间的所有网络连接。
如果想省去每次删除不需要容器的麻烦,可以在docker run
中指定--rm
标识,这样容器停止后会自动删除。这在测试中会很有用。
docker start
命令上面我们已经提到过,它用来使一个处在停止状态的容器运行起来。
Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]
Start one or more containers
-a, --attach=false Attach STDOUT/STDERR and forward signals
--help=false Print usage
-i, --interactive=false Attach container's STDIN
其中-a
标识用于将要运行容器的STDOUT
和STDERR
绑定到控制台输出;而-i
标识用于将STDIN
绑定到控制台用于和容器交互。
stop
命令用于停止一个正在运行的容器。
Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
Stop a container by sending SIGTERM and then SIGKILL after a
grace period
--help=false Print usage
-t, --time=10 Seconds to wait for stop before killing it
停止容器的过程中,容器首先收到SIGTERM
信号表示要停止容器,在经过一个“宽限期”后,容器收到SIGKILL
信号强制停止容器。其中“宽限期”由-t
(--time
)标识指定,单位是秒。
restart
命令用于重新启动一个正在运行的容器,它同样可以使用-t
标识设定“宽限期”,具体用法如下:
Usage: docker restart [OPTIONS] CONTAINER [CONTAINER...]
Restart a container
--help=false Print usage
-t, --time=10 Seconds to wait for stop before killing the container
Usage: docker pause [OPTIONS] CONTAINER [CONTAINER...]
Pause all processes within a container
--help=false Print usage
使用这个命令暂停容器内所有的进程。
Usage: docker unpause [OPTIONS] CONTAINER [CONTAINER...]
Unpause all processes within a container
--help=false Print usage
与pause
对应,恢复容器内所有的进程。
Usage: docker rename [OPTIONS] OLD_NAME NEW_NAME
Rename a container
--help=false Print usage
docker rename
命令用于对一个容器进行重命名。