一、创建容器
- 容器是Docker中的三大核心概念之一。镜像是一个静态的文件,而容器是一个动态运行的沙箱,我们基于容器向外提供服务(数据库服务、web服务、操作系统等)。
- 容器创建语法:
docker [container] create [option] image_name:image_tag
- 容器创建案例:
docker create -it ubuntu:16.04
- 参数说明
- i:交互式操作
- t:操作终端
- 启动容器(承接上一条),创建完成之后,容器还处于等待状态,需要使用start命令将其运行起来:
docker start container_name
- 以上创建+启动容器的过程,也可以通过run命令实现
- 语法:
docker run [option] image [command] [arguments]
- 案例:
docker run -itd ubuntu:18.04 /bin/bash
- 常见参数说明
- i:打开交互式功能
- t:分配一个终端
- v:挂载数据卷
- d:后台运行容器
- p(小写):指定映射端口
- P(大写):随机映射端口
- 查看容器输入与日志
- 语法:
docker [container] logs container-name
- 案例:
docker logs ce554267d7a4
二、停止容器
- 暂停容器:
docker pause container-name
- 停止容器:
docker stop container-name
- 重启容器:
docker restart container-name
- 查看所有容器ID:
docker ps -qa
- 查看处于运行状态的容器列表:
docker ps
- 查看全部容器列表:
docker ps -a
三、进入容器
- attach命令(当多个终端使用attach命令连接容器时,所有终端窗口会同步显示,存在相互干扰的风险,因此建议谨慎使用该命令):
docker attach container-name
- exec命令(-it参数来保持标准输入打开,并且分配一个伪终端):
docker exec -it container-name /bin/bash
四、删除容器
- 语法:
docker [container] rm [option] container-name/ID
- option的可选参数如下:
- -f/–force=false:是否强行终止并删除一个运行中的容器
- -l/–link=false:删除容器的链接,但保留容器
- -v/–volumes=false:删除容器挂载的数据卷
- 案例:
docker rm container-name
- 删除所有非运行状态的容器(在生产环境中谨慎使用):
docker rm $(docker ps -qa)
五、导入和导出容器
- 导出容器语法:
docker export [ -o | --output [=””] ] container
- 导出容器案例:
docker export -o ubuntu.tar container-name
- 导入容器语法:
docker import [-c | --change] [-m|--message] file | URL - imagename:tag
- 导入容器案例:
docker import local-ubuntu.tar - local_ubuntu:18.04
六、查看容器
- 查看容器详情:
docker [container] inspect container-name
- 查看容器内进程:
docker [container] top container-name
- 查看统计信息:
docker stats [options]
- options可选参数如下:
- -a/-all: 输出所有容器的统计信息
- -format string: 格式化输出信息
- -no-trunc: 不截断输出信息
七、其他容器操作命令
- 复制文件,例如将本地的路径data复制到demo-container容器中的/tmp路径下:
docker cp data demo-container:/tmp/
- 查看容器内文件的变更:
docker container diff container-name
- 查看容器的端口映射:
docker container port container-name
- 更新配置语法(options参数较多,可自行查阅资料):
docker update [options] container-name
- 更新配置案例(例如限制CPU调度器使用时间为1秒):
docker update --cpu-period 1000000 container-name
- 容器操作语法总结
系统指令 |操作命令 |可选参数 |容器名称/ID
--------------- |-------------- |---------------- |-----------------
docker |Start,stop,rm,update | 对应各个操作命令的options | 容器名/ID
系统指令 | 操作命令 | 可选参数 | 容器名称/ID |
---|---|---|---|
docker | start | 对应各个操作命令的options | 容器名/ID |
docker | stop | 对应各个操作命令的options | 容器名/ID |
docker | rm | 对应各个操作命令的options | 容器名/ID |
docker | … | 对应各个操作命令的options | 容器名/ID |