2020-11-17

Docker三大核心概念

(1)镜像

镜像类似于虚拟机镜像,可以把它理解为一个只读的模板。例如,一个包含 Nginx 应用程序的镜像,其内部包含一个基本的操作系统环境以及 Nginx 应用程序 。 镜像是创建 Docker 容器的基础,通过版本管理和增量文件系统, Docker 提供了一套机制来创建或更新现有的镜像,我们还可以从网上下载并使用别人已经做好的镜像。

(2)容器

Docker 容器类似于一个轻量级沙箱, Docker 利用容器来运行和隔离上层应用。容器与镜像的关系类似于面向对象编程中的对象与类。从镜像中创建的应用,在容器中运行实例,从而保证实例之间不会相互影响。容器可以启动 、 开始 、 停止 、 删除,并且这些容器都是彼此相互隔离 、 互不可见的。

(3) 仓库

Docker 仓库类似于代码仓库,是集中存放 Docker 镜像文件的地方。根据所存储的镜像是否公开,我们可以把仓库分为公开仓库 ( Public ) 和私有仓库 ( Private ) 两种形式。

容器的生命周期

1、create:初建状态

2、running:运行状态

3、stopped:停止状态

4、paused:暂停状态

5、deleted:删除状态

image-20201117090112591

(1)创建并启动容器

docker create -it --name=nginx nginx

  • docker attach

  • docker exec

    删除容器

    docker rm [OPTIONS] CONTAINER [CONTAINER...]

    删除已经停止的容器

    docker rm nginx

    docker rm -f nginx

    docker export nginx > nginx.tar

    image-20201117082806114

    启动容器并查看创建的a.txt文件

    image-20201117082718084

    使用docker images 可以查看导入的镜像

    • 容器导入

      可以使用docker import命令文件将会变成本地镜像,最后通过docker run就可以启动该镜像。

      image-20201117082520904

    此时我们可以看到在当前目录生成了nginx.tar文件,此时就可以完成容器的迁移。

    image-20201117082155363

    image-20201117081929127

    我们可以使用docker export CONTAINER导出一个容器到文件(正在运行的容器也可以导出)。我们进入容器,并创建a.txt文件。

    • 容器导出

    容器导入导出

    删除正在运行的容器

可以使用docker attachdocker execnsenter等命令进入容器。

进入容器

image-20201117080941192

同时你也可以通过docker restart将一个正在运行的容器重新启动

image-20201117080749199

此时容器又处于运行状态

image-20201117080729604

终止的容器可以通过docker start命令重新启动

image-20201117080617248

此时查看容器的状态是停止状态

image-20201117080544670

如果我们想停止正在运行的容器,可以使用docker stop,格式:docker stop [-t|--time[10]]

终止容器

2、使用docker run命令基于镜像创建一个新的容器,docker run = docker create + docker start

1、使用docker start命令基于已经创建好的容器直接启动。

容器的启动的两种方式:

image-20201117080037877

使用docker start启动容器

image-20201117075851837

使用docker create命令创建的容器处于停止状态

image-20201117075641019

你可能感兴趣的:(2020-11-17)