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,页面访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值