Skip to content

Dockerfile

Dockerfile

img

目录

[toc]

1、Dockerfile概述

Docker通过Dockerfile自动构建镜像,Dockerfile是一个包含用于组建镜像的文本文件,由一条一条的指令组成。

2、Dockerfile常用指令

指令描述
FROM构建新镜像是基于哪个镜像
LABEL标签 (LABEL 打标签,写不写都行的;)
RUN构建镜像时运行的Shell命令 (通过 换行符:&&\,可以运行多行shell命令)
COPY拷贝文件或目录到镜像中
ADD解压压缩包并拷贝
ENV设置环境变量
USER为RUN、CMD和ENTRYPOINT执行命令指定运行用户
EXPOSE声明容器运行的服务端口(EXPOSE 80 :事声明一个80端口,不是实际暴露;
声明容器监听的端口号为 12445。这主要是为了文档和开发目的,实际暴露端口是在运行容器时通过 docker run -p参数来实现的。
WORKDIR为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录;
CMD运行容器时默认执行,如果有多个CMD指令,最后一个生效。

3、构建镜像命令

bash
构建镜像命令Usage:dockerbuild[OPTIONS] PATH |URL|-[flags]Options:-t,--taglist### 镜像名称-f,--filestring### 指定Dockerfile文件位置dockerbuild-tshykes/myapp.#.代表当前路径,如果你的dockerfile文件名默认为Dockerfile,那也是可以不用指定-f的;dockerbuild-tshykes/myapp-f/path/Dockerfiledockerbuild-tshykes/myapphttp:-rw-r--r--1rootroot46MAug132021dockerfile.zip[root@docker ~]###unzip dockerfile.zip [root@docker ~]###cd dockerfile[root@docker dockerfile]###lsjavanginxphptomcat[root@docker dockerfile]###ls nginx/Dockerfilenginx-1.15.5.tar.gznginx.confphp.conf[root@docker dockerfile]###ls tomcat/apache-tomcat-8.5.43.tar.gzDockerfileROOT.war

2、编写Dockerfile

dockerfile
[root@docker dockerfile]#cd nginx/[root@docker nginx]#cat Dockerfile FROMcentos:7LABELmaintainer www.ctnrs.comRUNyum install -y gcc gcc-c++ make \openssl-devel pcre-devel gd-devel \iproute net-tools telnet wget curl &&\yum clean all &&\rm -rf /var/cache/yum