三、停止容器
1. 暂停容器
暂停容器一般情况下会用于容器中的应用出现故障的情况下,这时可以使用 pause 命令,语法如下:
docker [container] pause
例如暂停刚才创建的ubuntu16.04 这个容器,可以这么做:
docker pause b58a44432c7b
2. 终止容器
终止容器可以使用 stop 命令,命令语法为:
docker [container] stop [-t=10]
我们将刚才创建的ubuntu16.04 容器在20秒后彻底终止掉,可以这么做:
docker stop -t=20 b58a44432c7b
执行结果如下:
四、进入容器
进入容器docker 官方推荐使用 attach 和 exec 命令
1. attach
该命令是docker 自带的命令,语法格式如下:
docker [container] attach
常用参数有如下几个:
- –detach-keys[=[]]:指定推出attach 模式的快捷键,默认是 ctrl+p ctrl+q;
- –no-stdim=true|false:是否关闭标志输入,默认是false;
- –sig-proxy=true|false:是否代理收到的系统信号给应用进程,默认是true。
我们进入ubuntu16.04容器:
docker attach --no-stdin b58a44432c7b
运行结果如下:
2. exec
该命令是docker最新支持的命令,因为 attach 命令在多窗口的情况下会出现所有窗口同步显示,当某个窗口阻塞时,其他窗口无法使用,因此 exec 命令出现了。该命令的语法为:
docker [container] exce
该命令参数有如下几个:
- -d, --detach:在容器中后台执行命令;
- –detach-keys:指定将容器切换回后台的案件;
- -e, --env:设置环境变量;
- -i, --interactive=true|fale:打开标准输入命令,默认值为false;
- –privileged=true|false:是否以最高权限执行命令,默认值为false;
- -t, --tty=true|false:是否开启伪终端,默认值为false;
- -u, --user:执行命令的用户名或ID。
我们进入刚才创建的ubuntu16.04:
docker exec -it b58a44432c7b /bin/bash
运行结果如下:
四、删除容器
删除命令比较简单,可以使用 rm 命令,命令语法如下:
docker [container] rm
rm 命令主要参数如下:
- -f, --force:是否强强行终止并删除一个正在运行的容器,默认值false;
- -l, --link:是否删除容器链接,保留容器,默认值为false;
- -v,–volumes:是否删除容器挂在的数据卷,默认值为false;
我们这里删除正在运行的ubuntu16.04 容器:
docker rm -f b58a44432c7b
执行结果如下:
注:强行删除一个正在运行中的容器,docker 会先发送SIGKILL给容器,终止容器运行,然后强行删除。
五、容器导入导出
当我们将一个容器从一个地方迁移到另一个地方往往需要导入导出。
1. 导出容器
使用 export 命令,命令格式为:
docker [container] -o export
-o 表示要到将容器导出的位置
例如将ubuntu16.04 容器导出到 /etc/test/ub.tar
docker export -o /etc/test/test.tar 0daa01b513c6
执行结果如图:
2. 导入容器
使用 import 命令导入容器,命令格式为:
docker [container] import -c
-c 代表容器tar文件的位置
下面我们导入刚才导出的容器:
docker import /etc/test/test.tar
运行结果如下: