Dockerfile 简介
- 常用保留字
FROM
基础镜像, 当前新镜像是基于哪个镜像的, 指定一个已经存在的镜像作为模板, 第一条必须是FROM
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN
容器构建时需要运行的命令, 有两种格式
RUN yum -y install vim
RUN ["./test.sh", "para1", "para2"]
EXPOSE
当前容器对外暴露出的端口
WORKDIR
指定在创建容器后, 终端默认登陆的进来工作目录, 一个落脚点
USER
指定该镜像以什么样的用户去执行, 如果都不指定, 默认是root
ENV
用来在构建镜像过程中设置环境变量
ADD
将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY
类似ADD, 拷贝文件和目录到镜像中. 将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置
方法:
COPY src dest
COPY ["src", "dest"]
VOLUME
容器数据卷, 用于数据保存和持久化工作
CMD
指定容器启动后的要干的事情, 同上分为shell格式和exec格式
Dockerfile 中可以有多个 CMD 指令, 但只有最后一个生效, CMD 会被 docker run 之后的参数替换
ENTRYPOINT
也是用来指定一个容器启动时要运行的命令
类似于 CMD 指令, 但是ENTRYPOINT不会被docker run后面的命令覆盖, 而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序
- 编写 centos 安装 java 环境
FROM centos
MAINTAINER zzyy<[email protected]>
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 安装vim编辑器
RUN yum -y install vim
# 安装ifconfig命令查看网络IP
RUN yum -y install net-tools
# 安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
# ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
# 配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
# build
docker build -t centosjava8:1.5
标签:RUN,java,简介,CMD,40,ENV,镜像,HOME,DockerFile
From: https://www.cnblogs.com/ckh2023/p/18070149