方法二:使用Dockerfile方式构建 如果后续镜像经常变更(例如某个软件更新版本),则需要采用方法二制作镜像。若仍采用方法一制作镜像,则每次变更都需要重新执行方法一的命令,操作过程比较繁琐,所以建议使用自动化制作镜像的方法。
其实就是将方法一制作镜像的方法,用文件方式写出来(文件名为Dockerfile)。然后执行:docker build -t test/image:tag.命令(命令中“.”表示Dockerfile文件的路径),自动完成镜像制作。
简单的Dockerfile示例:
如果依赖外部网络,请搭建网络环境,并保证网络可用。
#Version 1.0.1
FROM centos:latest
#设置root用户为后续命令的执行者
USER root
#执行操作
RUN yum update -y
RUN yum install -y java
#使用&&拼接命令
RUN touch test.txt && echo "abc" >>abc.txt
#对外暴露端口
EXPOSE 80 8080 1038
#添加网络文件
ADD https://www.baidu.com/img/bd_logo1.png /opt/
#设置环境变量
ENV WEBAPP_PORT=9090
#设置工作目录
WORKDIR /opt/
#设置启动命令
ENTRYPOINT ["ls"]
#设置启动参数
CMD ["-a", "-l"]
#设置卷
VOLUME ["/data", "/var/www"]
#设置子镜像的触发操作
ONBUILD ADD . /app/src
ONBUILD RUN echo "on build executed" >> onbuild.txt
