Docker学习四:容器基本操作

一、什么是容器

  容器是基于镜像创建的实例,可以单独存在,一个镜像可以创建多个容器。下图是是容器的组成:

二、容器的生命周期

容器的生命周期分为如下几种状态:

  1. created:初建状态
  2. running:运行状态
  3. stopped:停止状态
  4. paused: 暂停状态
  5. deleted:删除状态

各个状态之间的转换关系如图所示:

三、容器的基本操作

1、创建并启动容器

docker start命令启动已经创建好的容器
#创建容器
docker  create -it  --name=mybusybox busybox

#启动创建的容器
docker start mybusybox

由上面操作步骤可知:docker create 基于镜像创建的容器处于停止状态,可以通过docker start命令启动

docker run基于镜像直接创建并启动容器
#运行容器
docker run -it --name=mybusybox busybox
docker运行容器执行的流程:
  • Docker 会检查本地是否存在 busybox 镜像,如果镜像不存在则从 Docker Hub 拉取 busybox 镜像;
  • 使用 busybox 镜像创建并启动一个容器;
  • 分配文件系统,并且在镜像只读层外创建一个读写层;
  • 从 Docker IP 池中分配一个 IP 给容器;
  • 执行用户的启动命令运行镜像。

2、终止容器

docker stop命令可以停止运行中的容器,停止后可以通过docker start命令启动;也可以通过docker restart命令重启正在运行中的容器

3、进入容器

docker attach 容器名称/容器ID

注意点:当在多个终端同时用docker attach进入容器后,所有的终端都会同步显示相同的命令,如果其中某个终端的命令阻塞了,则所有的终端都无法操作

docker excel方式进入容器
docker exec -it busybox sh

推荐使用这种方式进入容器,每个命令行会单独开启一个sh进程,互不影响。

4、删除容器

删除停止状态的容器:docker rm 容器名称/容器ID

强制删除运行状态的容器:docker rm -f 容器名称/容器ID

5、导出导入容器

docker export 和docker import命令可以完成容器的迁移工作:

#进入容器并创建test目录:
docker exec -it fff sh
cd /tmp && touch test

#退出容器后,执行docker export命令
docker export mybusybox > busybox.tar

#通过docker import命令导入上一步生成的文件,生成新的镜像
docker import busybox.tar busybox:test

#通过docker run运行上一步生成的镜像
docker run -it busybox:test sh

#进入新运行的容器中,可以发现容器中包含第一步中创建的文件夹
原文地址:https://www.cnblogs.com/canghai1024/p/13665084.html