03-Docker镜像管理基础

上一篇,写到docker容器状态,大约几种created,started,stopped,deleted,pause。

Docker Images:

Docker 镜像里面还有启动容器所需要的文件系统机器内容,因此用于启动和创建容器。

  • 采用分层构建机制,大体分为两部分:最底层为bootfs, 上面为rootfs:

  • Bootfs: 用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后,会卸载,节约内存空间;

  • Rootfs: 位于bootfs之上,表现为容器的根文件系统;
    03-Docker镜像管理基础_第1张图片

  • Docker image layer:
    位于下层的镜像称为父镜像,最底层的称为基础镜像(base image);
    注意只有最上层为“可读写层”,其他均为“只读层”。
    03-Docker镜像管理基础_第2张图片

  • Docker registry

    存放镜像的仓库,启动容器时,docker daemon会首先从本地获取相关镜像;本地镜像不存在时,会从docker registry中获取镜像,并拉取到本地,加以保存。
    03-Docker镜像管理基础_第3张图片
    一个registry由两部分组成:repository和index:
    具体的docker registry会在后面详细描述。

镜像的生成途径:

  • Dockerfile: docker build 命令来生成一个镜像,后续会重点详细描述;

  • 基于容器制作:在容器里面操作完之后,用docker commit命令制作镜像

  • Docker Hub: 直接从docker pull 。

下面先重点详细介绍下基于容器制作镜像:
先启动并进入一个容器中(还是以busybox为例):
在这里插入图片描述然后,在容器中进行一系列操作(下面为example):
在这里插入图片描述
然后,用docker commit生成镜像(注意,将容器先暂停):
在这里插入图片描述
最后,用这个新镜像验证是否有index.html文件:
在这里插入图片描述
镜像制作成功。

镜像导入和导出:

Docker save: 将本地下载好的镜像打包;
在这里插入图片描述
Docker load:将打包好的镜像文件,放在另外一台机器docker load 即可:
03-Docker镜像管理基础_第4张图片

总结:

下图为总结出的镜像制作过程图:
03-Docker镜像管理基础_第5张图片

你可能感兴趣的:(docker)