Docker-Dockerfile 阳光穿透心脏的1/2处 2022-12-10 08:56 175阅读 0赞 ### 文章目录 ### * * * 一、特点 * 二、常用命令 * 三、脚本 * 四、构建 ### 一、特点 ### * 文件名不能改。 * 用来构建镜像的宿主机端文本文件,会将相对路径下所有文件打包。 * 每一次RUN都会在docker上新建一层,以 **&&** 符号连接命令,这样执行后,只会创建 1 层镜像。 ### 二、常用命令 ### **FROM**:基于基础镜像。 **RUN**:等同于,在终端操作的 shell 命令。 **COPY**:从上下文目录中复制文件或者目录到容器里指定路径。 # [--chown=<user>:<group>]:可选参数,用户改变复制到容器内文件的拥有者和属组。路径不存在则自动创建。 COPY [--chown=<user>:<group>] <源路径1>... <目标路径> **CMD**:类似于 RUN 指令,用于运行程序。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。 * CMD 在docker run 时运行。 * RUN 是在 docker build。 # 多个 CMD 指令,仅最后一个生效。 CMD ["<可执行文件或命令>","<param1>","<param2>",...] **ENTRYPOINT**:类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖。 ENTRYPOINT ["executable", "param1", "param2"] # 多个 ENTRYPOINT 指令,仅最后一个生效。 FROM nginx ENTRYPOINT ["nginx", "-c"] # 定参 CMD ["/etc/nginx/nginx.conf"] # 变参 **EXPOSE**:声明端口。 **ENV**:设置环境变量。 **VOLUME**:设置容器与外界映射的目录。 ### 三、脚本 ### vi Dockerfile * 制作nginx镜像 FROM centos7 # 维护者 MAINTAINER adam COPY /home/adam/jdk1.8.0_191 /opt/jdk1.8.0_191 ADD websocket.jar app.jar ENV JAVA_HOME=/opt/jdk1.8.0_191 ENV PATH=$JAVA_HOME/bin:$PATH ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EXPOSE 8080 # ENTRYPOINT ["executable", "param1", "param2"] ENTRYPOINT ["java","-jar","/jenkins.war"] ### 四、构建 ### docker build -t nginx:test -f /Users/wangfugui/Downloads/soft/cbei_isp/Dockerfile/Dockerfile . * \-f:指定Dockerfile路径 * \-t:指定name:tag
还没有评论,来说两句吧...