Dockerfile保留字以及构建镜像

6 篇文章 0 订阅

1、保留字

FROM 基础镜像    #以基础镜像作为模板

RUN shell格式或exec格式的命令(yum install net-tool)   #在构建build时会执行

EXPOSE #暴露端口映射

WORKDIR   #指定登录终端的落脚点

ENV   #设置环境变量

VOLUME  #容器卷

ADD #将宿主机的文件拷贝到镜像并解压

COPY #将宿主机的文件拷贝到镜像

CMD #指定容器启动后要干的事,只能最后一个CMD生效,
#CMD会被docker run后面的参数替换(例如执行tomcat使用-it加bash等于CMD["bash","run"])就把CMD["catalina.sh","run"]替代了
#CMD是在docker run的时候执行

ENTRYPOINT #	类似于CMD指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,而且这些命令行参数会被当作参数送给ENTRYPOINT指令指定的程序

#当指定了ENTRYPOINT,CMD不再作为命令执行,而是作为ENTRYPOINT的传递参数.
ENTRYPOINT["nginx","-c"]#定参
CMD["/etc/nginx/nginx.conf"]#传参

#如果没有传参则按照dockerfile执行
#docker命令 	docker run nginx:test - 传参 docker run nginx:test -c /etc/nginx/newconf.conf
#实际命令 nginx -c /etc/nginx/nginx.conf - 传参 nginx -c /etc/nginx/newconf.conf

2、案例
centos镜像具备jdk8和vim以及ifconfig

1、在根目录新建一个myfile,放入jdk-8u333-linux-i586.tar.gz

2、编写makefile

FROM centos:7
MAINTAINER test<test@123.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim #安装vim
RUN yum -y install net-tools  #安装ifconfig
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
ADD jdk-8u333-linux-i586.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_333
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt. jar: $JAVA_HOME/lib/tools. jar: $JRE_HOME/lib: $CLASSPATHENV 
ENV PATH $JAVA_HOME/bin: $PATH

CMD echo $MYPATH
CMD echo  "success..ok"
CMD /bin/bash

3、构建

docker build -t 新镜像的名字:tag Dockerfile路径
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值