12
09

一、知识要点

  • 容器概念
  • 容器生命周期
  • 容器常用操作命令

二、容器是什么

容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器,运行容器化环境时,实际上是在容器内部创建该文件系统的读写副本,这将添加一个容器层,该层允许修改镜像的整个副本。

三、容器生命周期

容器的生命周期是容器可能处于的状态,容器的生命周期分为5种。

  • created: 初建状态
  • running: 运行状态
  • stopped: 停止状态
  • paused: 暂停状态
  • deleted: 删除状态

各生命周期之前的转换关系如图所示:

四、容器的操作

容器的操作可以分为五个步骤: 创建并启动容器,终止容器,进入容器,删除容器,导入和导出容器。

4.1、创建并启动容器

$ docker create -it --name=busybox busybox

使用docker create 命令创建的容器处于停止状态,可以使用docker start命令来启动

$ docker start busybox

容器启动两种方式:

  • 使用docker start 命令基于已经创建好的容器直接启动
  • 使用docker run命令直接基于镜像新建一个容器并启动
$ docker run -it --name=busybox busybox

执行流程

  • Docker 会检查本地是否有busybox镜像,若不存在则从Docker Hub拉取busybox镜像;
  • 使用busybox镜像创建并启动一个容器;
  • 分配文件系统,并且在镜像只读层外创建一个读写层;
  • 从Docker IP池中分配一个IP给容器;
  • 执行用户的启动命令运行镜像;

注:-it参数可以进入交互模式

4.2、终止容器

停止运行中的容器,可以使用docker stop命令

$ docker stop busybox

处于终止状态的容器也可以通过docker start命令来重新启动

$ docker start busybox

也可以使用docker restart命令会将一个运行中的容器终止,并且重新启动

$ docker restart busybox

4.3、进入容器
处于运行状态的容器可以通过docker attach、docker exec等多种方式进入容器。

  • 使用docker attach命令进入容器
$ docker attach busybox

使用docker attach命令同时在多个终端运行时,当某个命令行窗口的命令阻塞时,其他命令行窗口无法操作。建议不使用这种方式进容器。

  • 使用docker exec命令进入容器
$ docker exec -it busybox /bin/bash

exec方式进入容器,会单独启动一个sh进程,每个窗口都是独立且互不干扰。

4.4、删除容器

$ docker rm busybox

如果要删除正在运行中的容器,必须添加-f 参数

$ docker rm -f busybox

4.5、导出导入容器

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

$ docker export busybox > busybox.tar

会在当前文件夹下生成busybox.tar文件,可以拷贝到其他机器上,通过导入命令实现容器迁移。

使用docker import命令导入,执行完后会变为本地镜像,使用docker run命令启动镜像,就实现了容器的迁移。

$ docker import busybox.tar busybox:test

标题:Docker系列-容器
作者:chenjuntao
地址:http://taotaojava.com/articles/2020/12/09/1607513055035.html

标签:   浏览数: 0