查看容器

命令: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
    导入后已镜像形式存在