Dockerfile介绍
Dockerfile是构建镜像的指令文件,由一组指令组成,文件中每条指令对应linux中一条命令,在执行构建Docker镜像时,将读取Dockerfile中的指令,根据指令来操作生成指定Docker镜像。 Dockerfile结构:主要由基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。每行支持一条指令,每条指令可以携带多个参数。注释可以使用# 开头。
指令说明
FROM 镜像 : 指定新的镜像所基于的镜像 MAINTAINER 名字 : 说明新镜像的维护(制作)人,留下标记 RUN 命令 : 在所基于的镜像上执行命令,并提交到新的镜像中 CMD [“要运行的程序”,“参数1”,“参数2”] : 指定启动容器时要运行的命令或脚本 EXPOSE端口号 : 指定新镜像加载到Docker时要开启的端口 ENV环境变量 变量值 : 设置一个环境变量的值,会背后面的RUN用到 ADD源文件/目录 目标文件/目录 : 将源文件复制到目标文件 ,源文件和Dockerfile位于同一目录 COPY源文件/目录 目标文件/目录 : 将本地主机的源文件复制到目标目录,源文件和Dockerfile位于同一目录 VOLUME[“目录”] : 在容器中创建一个挂载点 USER 用户名 /UID : 指定运行容器时的用户 WORKDIR路径 : 为后续的RUN 、CMD、ENTRYPOINT 指定工作目录 ONBUILD命令 : 指定所生成的镜像作为一个基础镜像时所要运行的命令。
构建镜像实例
nginx镜像
- 建立工作目录
docker pull centos
mkdir nginx
cd nginx/
- 创建Dockerfile文件
进入vim编辑模式
vim Dockerfile
vim模式下输入以下内容
FROM centos
MAINTAINER this is nginx image <zkc>
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz
RUN tar zxvf nginx-1.9.7.tar.gz
WORKDIR nginx-1.9.7
RUN ./configure --prefix=/usr/local/nginx && make && make install
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
- 编写执行脚本
进入vim编辑模式
vim run.sh
vim模式下输入以下内容
#!/bin/bash
/usr/local/nginx/sbin/nginx
- 构建镜像
构建镜像指令后有一个 . 输入的时候不要漏掉。. 表示在当前路径下执行,所以需要在Dockerfile 文件的路径下执行构建指令。
docker build -t nginx:new .
docker run -d -P nginx:new
docker ps -a
|