美文网首页
04 Docker 容器基本操作

04 Docker 容器基本操作

作者: 托瓦斯克一 | 来源:发表于2021-01-04 22:03 被阅读0次

容器生命周期

容器的生命周期是容器可能处于的状态,主要有以下五种:
● created:初建状态
● running:运行状态
● stopped:停止状态
● paused:暂停状态
● deleted:删除状态

容器生命周期 转换关系图

容器操作

初建启动容器

通过 docker create 命令创建的容器是处于初建状态的,需要通过 docker start 命令来启动初建容器;当然我们也可以通过 docker run 命令一步完成容器的初建与启动。

当使用 docker run 创建并启动容器时,Docker 后台执行的流程为:
● Docker 会检查本地是否存在 busybox 镜像,如果镜像不存在则从 Docker Hub 拉取 busybox 镜像;
● 使用 busybox 镜像创建并启动一个容器;
● 分配文件系统,并且在镜像只读层外创建一个读写层;
● 从 Docker IP 池中分配一个 IP 给容器;
● 执行用户的启动命令运行镜像。

$ docker create -it --name=mybb busybox
$ docker ps -a | grep mybb
2c2e919c2d66   busybox   "sh"   33 seconds ago   Created   mybb
$ docker start mybb
等同于
$ docker run -it --name=mybb busybox

终止容器

容器启动后,如果我们想停止运行中的容器,可以使用 docker stop 命令,命令格式为 docker stop [-t|--time[=10]]。该命令首先会向运行中的容器发送 SIGTERM 信号,如果容器内 1 号进程接受并能够处理 SIGTERM,则等待 1 号进程处理完毕后退出,如果等待一段时间后,容器仍然没有退出,则会发送 SIGKILL 强制终止容器。

$ docker stop mybb
$ docker ps -a 
CONTAINERID       IMAGE      COMMAND      CREATED           STATUS     PORTS                   NAMES
2c2e919c2d66      busybox    "sh"         26 minutes ago    Exited (137) About a minute ago    mybb
$ docker start mybb
等同于
$ docker restart mybb

进入容器

处于运行状态的容器,可以通过 docker attachdocker execnsenter 等多种方式进入容器。
docker attach:当我们同时使用该命令同时在多个终端运行时,所有的终端窗口将同步显示相同内容,当某个命令行窗口的命令阻塞时,其他命令行窗口同样也无法操作,而且退出不当会导致容器停止,组合键 Ctrl + p + q 才能无损退出。
docker exec:推荐使用,该命令更加灵活方便,可以通过 docker exec -it CONTAINER 方式进入运行中的容器,主要是通过在容器启多一个 sh 进程,保证每个窗口都是独立且互不干扰的,而且避免了退出不当导致容器停止的意外。
nsenter:生产环境上常用,当一些容器内的常规命令非常少,不利于快速分析问题时,使用该命令切换空间后就可以使用容器所在宿主机上的相关命令了;使用方式 nsenter -n -t `docker inspect --format "{{.State.Pid}}" 容器ID`。

$ docker attach 2c2e919c2d66

$ docker exec -it 2c2e919c2d66 sh

$ nsenter -n -t `docker inspect --format "{{.State.Pid}}" 2c2e919c2d66`

删除容器

删除容器的命令使用方式如下:docker rm [OPTIONS] CONTAINER [CONTAINER...]
如果要删除正在运行中的容器,需要带 -f 参数,Docker 会先发送 SIGKILL 信号强制终止正在运行的容器并删除。

$ docker rm 2c2e919c2d66 

$ docker rm -f 2c2e919c2d66 

导出容器

可以使用 docker export CONTAINER 命令导出一个容器到文件,不管此时该容器是否处于运行中的状态。

$ docker export mybb > mybb.tar

导入容器

可以使用 docker import 命令导入并且指定导入的新镜像名称,执行完该命令后,之前导出的文件会变为本地新镜像,最后再使用 docker run 命令启动该镜像,这样就间接实现了容器的迁移。

$ docker import mybb.tar busybox:v1

相关文章

  • 04 Docker 容器基本操作

    容器生命周期 容器的生命周期是容器可能处于的状态,主要有以下五种:● created:初建状态● running:...

  • docker命令

    镜像、容器基本操作 1、获取镜像docker pull 2、运行容器docker run docker run -...

  • docker 基本命令

    一,关于docker镜像操作的基本命令 二,关于docker容器操作的基本命令 三,关于docker仓库操作的基本命令

  • 【2】docker 基本操作.md

    【2】docker 基本操作 基本命令 示例 容器操作 绑定服务到TCP端口 提交(保存)容器状态

  • Docker 常用操作

    Docker 基本信息显示 Container容器操作 Image镜像操作 常见错误 docker load导入本...

  • docker容器基本操作

    启动交互式容器 查看容器 自定义容器的名字 重启启动停止的容器 删除停止的容器 守护式容器 什么是守护式容器: 能...

  • docker常用命令总结

    参考链接 Docker 常用命令与操作 docker常用命令总结——安装、镜像、容器基本操作

  • Docker应用示例1--使用Docker创建Web服务

    1,目的 在已经掌握docker安装、docker仓库的基本使用、docker镜像和容器的基本操作和相互转化的基础...

  • Docker入门及安装

    1.卸载 2.CentOS7中安装 3.docker基本操作 容器操作 镜像操作

  • docker-compose小案列

    基本操作指令 compose操作容器(一定要进入配置文件目录) 后台启动容器:docker-compose up ...

网友评论

      本文标题:04 Docker 容器基本操作

      本文链接:https://www.haomeiwen.com/subject/qnzvoktx.html