1、什么是 Dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
2、Dockerfile的作用
安装dockerfile中的指令定义docker容器或者容器中的应用程序以及服务
Dockerfile制作一个镜像模板安装模板统一生成容器
3、Dockerfile的基础结构
#开头的表示注释行,说明dockerfile中的指令
维护者的信息
镜像操作指令
容器操作指令
基础镜像信息
4、Dockerfile中常见的操作指令和作用
FROM:指定创建镜像的基础镜像
MAINTAINER:Dockerfile作者信息,一般写的是联系方式
RUN:运行Linux系统的命令使用
CMD:指定容器启动执行的命令;启动容器中的服务
LABEL:指定生成镜像的源数据标签
EXPOSE:指定镜像容器监听端口号;发布服务使用
ENV:使用环境变量
ADD:对压缩文件进行解压缩;将数据移动到指定的目录
COPY:复制宿主机数据到镜像内部使用
WORKDIR:切换到镜像容器中的指定目录中
VOLUME:挂载数据卷到镜像容器中
USER:指定运行容器的用户
ARG:指定镜像的版本号信息
ONBUILD:创建镜像,作为其他镜像的基础镜像运行操作指令
ENTRYPOINT:指定运行容器启动过程执行命令,覆盖CMD参数
解释了这么多,下面开始实验部分
vim Dockerfile
//基于的基础镜像
FROM centos:7
//维护镜像的用户信息
MAINTAINER
//镜像操作指令安装apach软件
RUN yum -y update //先更新yum源
RUN yum -y install httpd
//开启80端口
EXPOSE 80
//复制网站首页文件
ADD index.html /var/www/html/index.html
//将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
//启动容器时执行脚本
CMD ["/run.sh"]
vim run.sh
#!/bin/bash
rm -rf /run/http/*
exec /usr/sbin/apachectl -D FOREGROUND
echo "web test" > index.html
//生成镜像
docker build -t http:centos . (注意别忘了末尾有.)
//新镜像运行容器
docker run -d -p 1216:80 httpd:centos
可以在浏览器中访问20.0.0.22:1216就能访问你部署的docker