Docker教程小白实操入门(15)--如何使用WORKDIR、ENV、ARG和EXPOSE设置镜像

网友投稿 282 2022-10-22

Docker教程小白实操入门(15)--如何使用WORKDIR、ENV、ARG和EXPOSE设置镜像

一、需求

WORKDIR指令为其他指令设置工作目录

ENV指令设置环境变量

ARG指令构建参数

EXPOSE指令暴露端口

二、WORKDIR指令为其他指令设置工作目录

WORKDIR <工作目录路径>

​​WORKDIR​​​指令为​​Dockerfile​​​中的任何​​RUN​​​,​​CMD​​​,​​ENTRYPOINT​​​,​​COPY​​​和​​ADD​​​指令设置工作目录(或称当前目录),也就是说以后各层的当前目录就被改为​​WORKDIR​​指定的目录。如果​​WORKDIR​​对应的目录不存在,将会自动被创建。

三、ENV指令设置环境变量

ENV # 或ENV =

无论是后面的其它指令,还是运行时的应用,都可以直接使用这里定义的环境变量。

例如:

ENV CATALINA_HOME /var/tmp/apache-tomcat-8.0.45ENV PATH $PATH: $CATALINA_HOME/binENTRYPOINT $CATALINA_HOME /bin/startup.sh && /bin/bash

四、ARG指令构建参数

ARG <参数名>[=<默认值>]

​​ARG​​​与​​ENV​​​有些类似,它们都可以被后面的其它指令直接使用,但是它并不是环境变量,这意味着将来容器运行时是不会存在​​ARG​​变量的。

​​Dockerfile​​​中的​​ARG​​​指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令​​docker build​​​ 中用 ​​--build-arg <参数名>=<值>​​ 来覆盖。

​什么时候用ARG,什么时候用ENV?​

如果想保存为环境变量,就用​​ENV​​​;如果只想在​​Dockerfile​​​中临时使用,就用​​ARG​​。

五、EXPOSE指令暴露端口

EXPOSE <端口1> [<端口2>...]

如果想要公开容器的端口,必须在​​docker run​​​是指定​​-p​​​参数去公开端口或者指定​​-P​​​参数公开所有被​​EXPOSE​​​的端口。具体可以参照​​。

六、实例

七、 使用Dockerfile,创建一个拥有java和tomcat运行环境的镜像

# 指定基础镜像为ubuntu:latest镜像FROM ubuntu# 设置当前的工作目录为/var/tmpWORKDIR /var/tmp# 将jre.tar.gz下载到工作目录,并解压文件,然后删除jre.tar.gzRUN apt-get update && \ apt-get install -y wget && \ wget --no-check-certificate --no-cookies --header "Cookie: o\fraclelicense=accept-securebackup-cookie" && \ tar -xzf jre-8u144-linux-x64.tar.gz && \ rm jre-8u144-linux-x64.tar.gzRUN wget "&& \ tar -xzf apache-tomcat-8.0.45.tar.gz && \ rm apache-tomcat-8.0.45.tar.gz# 配置java与tomcat的环境变量ENV JAVA_HOME /var/tmp/jre1.8.0_144ENV CATALINA_HOME /var/tmp/apache-tomcat-8.0.45ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin# 由于tomcat服务会默认监听8080端口,所以使用EXPOSE暴露端口号EXPOSE 8080# 设置启动命令,使tomcat服务随容器启动而启动ENTRYPOINT /var/tmp/apache-tomcat-8.0.45/bin/startup.sh && /bin/bash

参考:​​https://educoder.net/shixuns/zawfjtnm/challenges​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker教程小白实操入门(5)--如何进入一个容器
下一篇:Java Date类十分钟理清时间的设置与操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~