查看容器
命令:docker ps
示例:docker ps
# 查看处于启动状态的容器
docker ps -a
# 查看所有容器,包括终止状态
创建容器
命令:docker create
示例:
[root@yjc ~]# docker create -it centos:8
c20a069c9b91703ea059ae6f8326610eb8455376d769c61ba8b3a685eeb3783a
-t 选项让docker分配一个伪终端并绑定到容器的标准输入上
-i 选项则让容器的标准输入保持打开
启动容器
命令:docker start
示例:docker start CONTAINER ID
,使用docker create创建的容器处于停止状态,可以使用docker start启动
新建并启动容器
命令:docker run
示例:docker run centos:8 /bin/echo "hello world"
docker run创建容器时,docker在后台的操作:
1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
2. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
3. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中
4. 从地址池分配一个ip地址给容器
5. 执行用户指定的应用程序
6. 执行完毕后容器被终止
添加 -d 选项可以以守护状态运行容器
root@yjc ~]# docker run -itd centos:8
121bba63dcad9c39dd6f4af81b352b44ac2f48ae213f2c4ebbc8ac67528ff677
[root@yjc ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
121bba63dcad centos:8 "/bin/bash" 7 seconds ago Up 6 seconds tender_ritchie
退出容器
按crtl+d 或输入exit
当退出容器后,该容器自动处于终止状态
终止容器
命令:docker stop
示例:docker stop 121bba63dcad
重启容器
命令:docker restart
示例:docker restart 121bba63dcad
删除容器
命令:docker rm
示例:docker rm 52567c5daf37
-f :强制删除
-l :删除容器的连接,但保留容器
-v :删除容器挂载的数据卷
进入容器
当容器在后台运行时,如果需要进入容器进行操作,可使用docker attach,docker exce,nsenter工具。
示例:
# docker attach
docker attach 121bba63dcad
# docker exec
docker exec -it 121bba63dcad /bin/bash
# nsenter
# nsenter通过容器的pid连接到容器
# 查找容器的pid
docker inspect --format "{{ .State.Pid }}" 121bba63dcad
# nsenter连接
nsenter --target 26911 --mount --uts --ipc --net --pid
导入和导出容器
- 导出容器:docker export
示例:docker export CONTAINER > NAME.tar
- 导入容器:docker import
示例:cat test_run.tar | docker import - test
导入后已镜像形式存在