本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29888
一, docker容器镜像制作命令
1, docker commit {容器名称} {镜像名称}
——不推荐使用
2, dockerfile
——推荐使用
- docker里面本身有一个Dockerfile文件,里面包含一系列指令可以理解为一个启动脚本
docker build -t tmp:v1.0 .
:把工作目录tmp下的所有文件加载到docker,tmp必须为独立保存Dockerfile的目录
3,dockerfile指令详解
- FROM :指定继承自哪个基础镜像
- RUN :运行shell命令
- ADD/COPY :复制文件
- USER :指定运行用户
- ENTRYPOINT :指定容器启动命令
- ENV :指定环境变量
- Dockerfile文件内容:
FROM centos:7
ADD entrypoint.sh /root (entrypoint.sh为工作目录路径的脚本)
USER root
RUN yum install -y wget vim
RUN yum install -y vim wget
RUN yum install -y wget vim git
RUN yum install -y wget
RUN yum install -y openssh-server openssl
RUN yum install wget vim
RUN yum install git vim
USER jenkins (容器读取的是最后一个USER命令的用户)
WORKDIR /root (容器启动后默认的指定目录)
ENv JAVAHOME=XXXX (配置环境变量)
ENTRYPOINT ["/bin/bash", "/root/entrypoint.sh"]
二, 镜像分层设计
- 每个镜像都是由多个层组成的,每一层都可以复用。
- docker每一层都是有缓存的,多次执行的时候未修改的部分会利用缓存。
- 编写 docker 时可以利用分层缓存的特点加速镜像开发的过程。