Docker:DockerFile关键字解析&自定义HelloWorld镜像
一,DockerFile简单执行流程
1,创建DockerFile文件,并定义对应的Docker脚本语言
2,通过docker build命令执行该DockerFile文件,生成docker镜像
3,在docker镜像中通过docker run命令启动容器,进行程序访问
二,DockerFile关键字
1,FROM
\* 基础镜像,当前镜像所依赖镜像,基于docker镜像分层概念
2,MAINTAINER
\* 当前维护镜像人/组织
3,RUN
\* 镜像构建时需要运行的Linux命令
4,WORKDIR
\* 容器创建后默认目录
5,EXPOSE
\* 当前容器对外暴露端口
6,ENV
\* 用来构建镜像时设置的环境变量
7,ADD
\* 将宿主机目录下的文件COPY到镜像并且会自动解压(zip文件不支持解压),该文件路径必须与DockerFile一致,且宿主机文件路径为相对路径
8,COPY
\* 将宿主机目录下的文件COPY到镜像,不会自动解压
9,VOLUME
\* 数据卷容器, 用于保存和持久化
10,CMD
\* 指定容器启动过程中需要运行的命令, 多条只生效最后一条, 并且命令会被docker run之后的参数替换
11,ENTRYPOINT
\* 指定容器启动过程中需要运行的命令, 会把docker run命令的参数追加到后面
三,自定义HelloWorld镜像
1,通过SpringBoot自定义HelloWorld项目,并通过maven打成jar包备用,该步骤不演示
2,在服务器路径下自定义DockerFile文件,并上传自定义jar包和JDK tar包到该路径
3,自定义DockerFile文件,
# 基于Docker镜像分层概念, 依赖的底层镜像
FROM centos
# 作者
MAINTAINER zpj<zpj@123.com>
# 工作空间
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 拷贝运行jar包到工作空间
COPY com.docker.helloworld-1.0-SNAPSHOT.jar /usr/local/com.docker.helloworld-1.0-SNAPSHOT.jar
# 添加JDK包并ADD到工作空间, 此处会自动解压, 注意解压不会解压zip包,并且路径必须与DockerFile同级
ADD jdk-8u171-linux-x64.tar.gz /usr/local
# JDK环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 拼接最终环境变量
ENV PATH $PATH:$JAVA_HOME/bin
# 对外暴露接口
EXPOSE 8080
# 执行的Linux命令
CMD java -jar /usr/local/com.docker.helloworld-1.0-SNAPSHOT.jar
4,docker镜像构建
# 注意最后一个.是点睛之笔
docker build -f /usr/develop/DockerFile -t myhelloworld:1.0 .
5,构建完成后查看镜像
6,启动镜像
7,查看日志
8,页面访问
还没有评论,来说两句吧...