docker-镜像介绍

116 阅读2分钟

镜像

image.png

  • docker镜像基于union file system将多个目录合并挂载至一个目 录给容器使用。

  • docker镜像只有rootfs 没有bootfs

  • 最底层是bootfs,镜像没有内核 镜像使用的是宿主机的bootfs。

    • rootfs 文件系统
    • bootfs 包括bootloader kernel
  • 一个镜像是有一层或者多层合并而成,每一层称为是一个layer。

  • 镜像可以基于其它镜像进行重新构建,被引用的镜像称为父镜像。

  • 一个镜像可以同时被创建为多个容器。

  • 镜像是只读的,任何的更改都不会直接修改镜像。

基于容器化的CICD流程

image.png

Dockerfile 构建镜像

参考方法 docs.docker.com/engine/refe…

  • DockerFile是一个可以被Docker程序解释的文本文件,
  • 其中由指定的 命令组成,在构建镜像的过程中,Docker程序会读取DockerFile文件内 容并生成一个临时容器、然后在临时容器中执行DockerFile的指令,
  • 当执 行完所有的指令后再把临时容器提交为一个Docker镜像,这样就完成的 一个镜像的构建,
  • 基于DockerFile构建镜像便于后期对镜像的内容进行调整,因此在企业中有了提前编写好的各种各样DockerFile文件就可以快速 构建出不同的业务镜像,
  • 而当后期某个镜像有额外的需求时,只要在之前的DockerFile添加或者修改相应的内容、即可重新生成新的Docke镜像
  • 然后部署在业务容器环境中(docker、docker-compsoe、swarm、 kubernetes、openshift等)。

手动提交镜像

查看帮助

docker commit --help

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes

 -a, --author string #镜像作者信息

 -c, --change list #Dockerfile中的指令

 -m, --message string #镜像提交信息

 -p, --pause #提交镜像过程中暂定容器,默认为true

手工创建镜像

docker commit -m "nginx image v2" -a "user1 2973707860@qq.com" -c "EXPOSE 80 443" 3ac3619d2b61 harbor.magedu.net/myserver/nginx:v2

使用镜像 重新创建一个容器

docker run -it -p 81:80 harbor.magedu.net/myserver/nginx:v2

业务规划 & 镜像分层构建

image.png