本文转自测试人社区,原文链接: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 时可以利用分层缓存的特点加速镜像开发的过程。