Docker基础篇(2)——DockerFile

DockerFile

通过编写DockerFile文件,然后经过编译就能生成镜像

1.DockerFile保留字

FORM 镜像名
当前镜像基于那个镜像,基础镜像scratch,
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN 命令
容器构建时需要运行的命令
EXPOSE 端口号
当前容器对外暴露出的端口
WORKDIR 路径   
指定在创建容器后,终端默认登陆进行的工作目录。
ENV 环境变量的名字 被替代的名
用来在构建镜像过程中设置环境变量,设置成功后,可以使用 $环境变量名 来代替被替代的变量。
ADD 主机文件目录 容器目录
将宿主机目录下的文件拷贝进镜像且add命令会自动出来url和解压tar压缩包
COPY 主机文件 拷贝到容器的路径
类似add,拷贝文件和目录到镜像中
VOLUME    容器数据卷,用于数据保存和持久化工作
CMD
指定一个容器启动时要运行的命令,只有最后一个生效。如果用户启动容器时指定了cmd,那么DockerFile文件中的cmd就会被覆盖。
ENTRYPOINT   
指定一个容器启动时要运行的命令,它和cmd的区别在于会将用户启动容器时指定的cmd添加到ENTRYPOINT设置的命令后面。
ONBUILD
当构建一个被继承的DockerFile时运行的命令,父镜像被子继承后父镜像的onbuild被触发

docker build -f [DockerFile文件路口] -t [新镜像名字:tag]
编写好DockerFile文件后,通过该命令编译DockerFile文件生成镜像

2.DockerFile例子

编写一个自定义的tomcat镜像

FROM CENTOS
MAINTAINER lvjifan<10290603@126.com>
# 把java和tomcat添加到容器中,并在容器中会自动解压
ADD jdk-8u171-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.8.tar.gz /usr/local/
# 安装vim编辑器
RUN yum -y install vim
# 设置访问容器时,进入的目录
ENV MYPATH /usr/local
WORKDIR $MYPATH 
# 配置tomcat和java的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV	CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME /lib/tools.jar
ENV	CLASSPATH_HOME /usr/local/apache-tomcat-9.0.8
ENV	CLASSPATH_BASE /usr/local/apache-tomcat-9.0.8
ENV	PATH $PATH:$JAVA_HOME/bin:$CLASSPATH_HOME/LIB:$CLASSPATH_HOME/BIN
#容器启动端口
EXPOSE 8080
#启动运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
# CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值