介绍
本篇内容介绍了“Dockerfile基础命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
<强> Dockerfile基础命令强>
从基于基准镜像
<>之前得到centos #制作基准镜像(基于centos:最新) 得到scratch #不依赖任何基准镜像,(base 图像),从零构建 得到tomcat: 9.0.22-jdk8-openjdkLABEL 及维护者——说明信息
MAINTAINER 3337777777. com , #个人或机构名称 LABEL 版本=?.0”; LABEL 描述=叭痔熳⒍?七分靠打拼,
WORKDIR -设置工作目录
WORKDIR /usr/当地 WORKDIR /usr/地方/newdir , #目标目录不存在,会自动创建 #尽量使用绝对路径
添加,复制-复制文件
ADD hello /,, #复制到跟路径 ADD test.tar.gz /,,, #添加到更目录并解压 # ADD 除了复制,还具备添加远程文件功能
ENV -设置环境常量
ENV JAVA_HOME /usr/地方/openjdk8 RUN $ {JAVA_HOME}/bin/java -jar test.jar #尽量使用环境常量,可提高程序维护性
Dockerfile执行指令
运行,CMD,入口点
运行:在建立构建时执行命令
入口点:容器启动时执行的命令
CMD:容器启动后执行默认的命令或参数
区别:不同执行时机
RUN -构建时运行
RUN yum install -y vim , #壳命令格式 RUN [“yum",“install",“-y",“vim"], # exec命令格式
为什么码头工人要为运行采用两种书写格式呢?
这涉及到linux系统的一些底层原理。
壳运行方式
exec运行方式
使用执行方式,会用exec进程替换当前进程,并且保持PID不变。
执行完毕,直接退出,并不会退回之前的进程环境。
在不清楚使用哪种方式的情况下,推荐使用Exec格式。
<强>入口点——启动命令强>
入口点(入口点)用于在容器启动时执行命令
Dockerfile中只有最后一个入口点会被执行
入口点(“ps"),#推荐使用Exec格式
<强> CMD -默认命令强>
CMD用于设置默认执行的命令
如Dockerfile中出现多个CMD,则只有最后一个执行
如容器启动时附加指令,则CMD被忽略
CMD [“ps",“-ef"),#推荐使用Exec格式
入口点和CMD联合使用
<>之前得到centos (“ps") ENTRYPOINT (“-ef") CMD #这时入口点会和CMD联合使用,,ps ef