标签:需要 bre ora dma die rtm pos 程序 rmq
FROM image_name:tag
|
定义了使用哪个基础镜像启动构建流程
|
MAINTAINER user_name
|
声明镜像的维护者及联系方式,不推荐
|
LABEL maintainer=“user_name”
|
添加镜像元数据信息,推荐使用此方式声明镜像维护信息
|
ENV key value
|
设置环境变量
|
RUN command
|
Dockerfile核心部分,用于执行命令行命令
|
ADD source_dir/file dest_dir/file
|
将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
|
COPY source_dir/file dest_dir/file
|
和ADD相似,但是如果有压缩文件不能解压
|
WORKDIR path_dir
|
设置工作目录
|
EXPOSE port
|
声明容器运行的服务端口
|
VOLUME path
|
挂载容器数据卷
|
CMD command
|
启动容器时执行的shell命令
|
FROM centos RUN yum install wget RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" RUN tar -xvf redis.tar.gz 以上执行会创建 3 层镜像。可简化为以下格式: FROM centos RUN yum install wget \ && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \ && tar -xvf redis.tar.gz
作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。
CMD <shell 命令> CMD ["<可执行文件或命令>","<param1>","<param2>",...] CMD ["<param1>","<param2>",...] # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
推荐使用第二种格式,执行过程比较明确。第一种格式实际上在运行的过程中也会自动转换成第二种格式运行,并且默认可执行文件是 sh。
设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
指定RUN、CMD、ADD等命令执行的工作目录,类似于cd到目录后再执行命令。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。
docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。
指定容器挂载点到宿主机自动生成的目录或者其他容器,一个卷可以存在于一个或多个容器的指定目录,如:
指定外界交互的端口,无实际作用,仅有提示意义,要使其可访问,需要在docker run时使用-p来设置端口。如:
# 1. 在一个空目录下新建一个名为 Dockerfile 的文件,并添加内容 FROM nginx RUN echo ‘这是一个本地构建的nginx镜像‘ > /usr/share/nginx/html/index.html # 2. 进入Dockerfile文件所在目录,执行cmd命令 docker build -t nginx:test . # 或者可以指定Dockerfile所在位置 docker build -t nginx:test e:\test # 也可以使用docker commit,不推荐使用 # docker commit <已启动的容器名> <新的容器名>:<版本号> # 3. 命令执行成功,查看nginx:test镜像成功创建 docker images # 4. 启动新建的镜像,进入/usr/share/nginx/html目录查看存在index.html docker run -dit --name test nginx:test docker exec -it test /bin/bash cd /usr/share/nginx/html/ ls
# 1. 在一个空目录下新建一个名为 Dockerfile的文件并添加内容 FROM centos:7 MAINTAINER panfang WORKDIR /usr RUN mkdir /usr/local/java ADD jdk-8u261-linux-x64.tar.gz /usr/local/java/ # 设置环境变量时要注意jdk的目录 ENV JAVA_HOME=/usr/local/java/jdk1.8.0_261 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 # 2. 下载 jdk-8u261-linux-x64.tar.gz 文件放在该目录下 # 3. 进入Dockerfile文件所在目录,执行cmd命令 docker build -t jdk1.8:test . # 4. 命令执行成功,查看nginx:test镜像成功创建 docker images # 5. 基于新建的镜像创建容器并启动容器进行测试 docker run -it --name=testjdk jdk1.8:test /bin/bash # 6. 在容器中测试jdk是否已经安装 java -version
标签:需要 bre ora dma die rtm pos 程序 rmq
原文地址:https://www.cnblogs.com/sharef/p/13468033.html