Dockerfile编写

编写规则:

#注释写一些标注或者是作者
FROM
FROM指令是最重要的一个且必须为 Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境 .
FROM repository[:tag]

COPY
如果src是目录,其内部文件或者子目录会被递归复制,但src目录自身不会被复制
如果指定了多个src,或在src中使用了通配符,则dest必须是一个目录,且dest目录必须以/结尾
如果dest事先不存在,它将会被自动创建,这包括其父目录路径
COPY src … dest

WORKDIR
workdir为工作目录,指当前容器环境的工作目录,用于为 Dockerfile中所有的 RUN、CMD、ENTRYPOINT、COPY和 ADD指定设定工作目录
WORKDIR dirpath

VOLUME

定义卷,只能是docker管理的卷,,VOLUME为容器上的目录,用于在 image中创建一个挂载点目录,以挂载 Docker host上的卷或其它容器上的卷
VOLUME mountpoint

EXPOSE
暴露指定端口,用于为容器打开指定要监听的端口以实现与外部通信
EXPOSE port[protocol] [port[protocol] …]
运行的时候docker -P来真正暴露
其中protocol用于指定传输层协议,可为 tcp或udp二者之一,默认为 TCP协议EXPOSE指令可一次指定多个端口,但是不能指定暴露为宿主机的指定端口,因为指定的宿主机端口可能已经被占用,因此这里使用随机端口

ENV
ENV用于为镜像定义所需的环境变量,并可被 Dockerfile文件中位于其后的其它指令(如 ENV、ADD、COPY等)所调用 ,即先定义后调用
调用格式为 $ variable_name或$ {variable_name}
ENV key value

AGRS
在编译是使用的变量,编译完成后删除。

RUN

RUN用于指定 docker build过程中运行的程序,其可以是任何命令,但是这里有个限定,一般为基础镜像可以运行的命令,如基础镜像为centos,安装软件命令为yum而不是ubuntu里的apt-get命令
RUN和CMD都可以改变容器运行的命令程序,但是运行的时间节点有区别,RUN表示在docker build运行的命令,而CMD是将镜像启动为容器运行的命令。因为一个容器正常只用来运行一个程序,因此CMD一般只有一条命令,如果CMD配置多个,则只有最后一条命令生效。而RUN可以有多个。
RUN command

CMD语法
CMD command或
CMD [“executable”,“param1”,“param2”]或
CMD[“param1”,“param2”]

ENTRYPOINT

类似 CMD指令的功能,用于为容器指定默认运行程序,从而使得容器像是一个单独的可执行程序
与CMD不同的是,由 ENTRYPOINT启动的程序不会被 docker run命令行指定的参数所覆盖,而且,这些命令行参数会被当作参数传递给 ENTRYPOINT指定指定的程序 .不过, docker run命令的 --entrypoint选项的参数可覆盖ENTRYPOINT指令指定的程序
ENTRYPOINT command
ENTRYPOINT [“excutable”,“param1”,“param2”]

指定运行用户
USER |

FROM harbor.sxftwork.com/pub_images/javabase:1.0.0
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY  /data/webapps/app.jar
USER root
RUN chown -R work:work /data/webapps/
RUN chown work:work /usr/local/bin/entrypoint.sh
USER work
ENTRYPOINT ["/bin/bash","/usr/local/bin/entrypoint.sh"]
EXPOSE 18902
#!/bin/bash
ls -al /data/webapps/
echo $DEPLOY_ENV
RUN_CMD="java -Xmx1024m  .......  -Dspring.profiles.active=$DEPLOY_ENV -jar /data/webapps/app.jar"
echo $RUN_CMD
eval $RUN_CMD          eval将字符串当作命令执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值