三、Dockerfile的说明和编写

时间:2021-09-13 14:27:48

一、docker hub的使用和说明:

我们要去找镜像,一般都会 https://hub.docker.com  的网站中去找,目前linux的容器,我们目前首选是alpine,因为容器非常小,可以满足基本的linux的环境。

二、Dockerfile的语法

Dockerfile的基本指令一共有13个

1、FROM <image>。其指定一个构建镜像的基础源镜像

2、MAINTAINER <name> <email> 指定作者和邮箱

3、RUN "command" "param1" "param2" 在镜像中执行、创建等命令

4、CMD  command param1 param2 CMD在Dockerfile中只能出现一次,有多个,只有最后一个会有效。其作用是在启动容器的时候提供一个默认的命令项

5、EXPOSE <port> [<port>...]  告诉Docker服务器容器对外映射的容器端口号

6、EVN <key> <value> 设置容器的环境变量,可以让其后面的RUN命令使用

7、ADD  <src>   <dest> 复制本机文件或目录或远程文件,添加到指定的容器目录,支持GO的正则模糊匹配。

8、COPY <src> <dest>  COPY除了不能自动解压,也不能复制网络文件。其它功能和ADD相同。

9、ENTRYPOINT "command" "param1" "param2" 这个命令和CMD命令一样,唯一的区别是不能被docker run命令的执行命令覆盖

10、VOLUME ["path"] 在主机上创建一个挂载,挂载到容器的指定路径。docker run -v命令也能完成这个操作,而且更强大。

11、USER daemon 指定运行容器时的用户名或UID

12、WORKDIR path 为RUN、CMD、ENTRYPOINT指令配置工作目录。可以使用多个WORKDIR指令,后续参数如果是相对路径,则会基于之前的命令指定的路径

13、ONBUILD [INSTRUCTION]  这个镜像创建后,如果其它镜像以这个镜像为基础,会先执行这个镜像的ONBUILD命令

三、例子

#Nginx dockerfile

#Version 1.14

#Author: gaochao

FROM centos

RUN mkdir -p /opt/soft

RUN yum install -y gcc gcc-c++ make telnet openssl-devel net-tools

ADD pcre-8.39.tar.gz /opt/soft

ADD nginx-1.14.0.tar.gz /opt/soft

WORKDIR /opt/soft/nginx-1.14.0

RUN ./configure --prefix=/usr/local/nginx \

--with-http_ssl_module \

--with-http_stub_status_module \

--with-pcre=/opt/soft/pcre-8.39 && make && make install

RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

ENV PATH /usr/local/nginx/sbin:$PATH

EXPOSE 80

CMD ["nginx"]

docker build -t centos_nginx:v1 .