前言:我们使用的镜像都是从docker hub上下载下来的,但是我们开发java应用的话,也需要制作自己的镜像,这时候我们就可以用的Dockerfile的功能去自己制作镜像。
如果自己不去制作镜像,弄一个jar包去启动的话,这是最简单的场景,实际上很复杂,如果不用镜像,每台服务器都手动部署的话会导致疏漏的问题。
思考2:实际场景下我们还可以用Dockerfile去制作已经存在的镜像,比如nginx,实际上部署nginx的时候也有额外的操作,这时候就需要考虑制作镜像。
FROM 当前镜像基于哪个镜像,第一个指令必须是FROM
RUN 构建镜像时需要运行的指令
EXPOSE 当前容器对外暴露的端口号
WORKDIR 创建容器后,进入容器所在的工作目录
ENV 构建镜像过程中设置的环境变量
ADD 拷贝文件,且有增强功能
COPY 拷贝文件
VOLUME 指定容器可以挂载的数据卷
CMD 指定容器启动时要运行的命令,且具有参数替换的能力
ENTRYPOINT 指定容器启动时要运行的命令
例子:
FROM nginx
COPY web/base_plus /usr/share/nginx/html
RUN chown nginx:nginx -R /usr/share/nginx/html
这里web/base_plus应该是jenkins打包前端产生的静态文件 /usr/share/nginx/html这个是nginx.conf里面配置的前端映射地址,最后一步是执行关于权限的操作。
原文:https://www.cnblogs.com/johnzhao/p/14494518.html