Docker commit
Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。
docker commit 容器名 新镜像名:tag
使用这种方式的缺点是:1.对外不可解释,不方便排查问题, 2.可维护性差、可阅读性差。
DockerFiles
-
Dockerfile 是由⼀系列指令和参数构成的脚本,⼀个 Dockerfile ⾥⾯包含了构建整个镜像的完整命令。 通过 docker
-
List item build 执⾏ Dockerfile 中的⼀系列指令⾃动构建镜像。
-
以下是 Dockerfile 中一些常用字段的含义:
❖ FROM(from):基础镜像,FROM 命令必须是 Dockerfile 的⾸个命令。
❖ LABEL(label):为镜像⽣成元数据标签信息。为镜像生成元数据标签信息。原有指令 MAINTAINER 已经放弃使用,用 LABEL maintainer=“xxxx” 替代。
❖ USER(user):指定运⾏容器时的⽤户名或 UID,后续 RUN 也会使⽤指定⽤户。
❖ RUN(run):RUN 命令是 Dockerfile 执⾏命令的核⼼部分。它接受命令作为参数并⽤于创建镜像。每条 RUN 命令在当前基础镜像上执⾏,并且会提交⼀个新镜像层。
❖ WORKDIR(workdir):
- 设WORKDIR 命令用于设置 CMD 指明的命令的运行目录。为后续的 RUN、CMD、ENTRYPOINT、ADD 指令配置工作目录。
- 可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
- 使用 docker exec -it 进入容器后,默认也会进入到 WORKDIR 指定的目录。
❖ ENV(env):指定容器启动时的环境变量(注意,只有在容器启动时,启动脚本能读取到,如果希望其他用户登录到容器也生效的话,需要写入 .bashrc)。
❖ ARG(arg):构建环境的环境变量。
❖ COPY(copy):复制⽂件,到WORK