Dockerfile
Dockerfile
目录
[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