上一节提到,Dockerfile是用来构建整个镜像的文本文件,描述了镜像需要用到的所有指令和说明:
1、一个包含用于组合镜像的命令的文本文件
2、可以配置使用任何在命令行中能使用的命令(就是只要能在命令行中用的命令,Dockerfile文件里都可以配置,在用Dockerfile创建镜像时会自动调用文件中配置的命令)
3、Docker可以通过读取Dockerfile中的指令自动生成镜像

开始

1.首先先下载一个基础镜像,这里使用官方的centos镜像,具体安装方式看 Docker容器的使用。
2.创建一个工作目录,在目录下新建Dockerfile文件:

  1. ~# mkdir work
  2. ~# cd work
  3. ~/work# vi Dockerfile

3.在工作目录下新建web主页文件 index.html

  1. ~# cat index.html
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <h2>Hello Docker --我是熊浩翔</h2>
  12. </body>
  13. </html>

4.在Dockerfile文件中配置制作镜像需要的命令:

  1. #指明构建镜像是来自于哪一个基础镜像
  2. FROM centos
  3. #通过镜像标签声明作者信息
  4. LABEL maintainer="ricky"
  5. #设置工作目录(可选)
  6. #WORKDIR /usr/local
  7. #安装httpd并启动httpd服务
  8. RUN yum install httpd -y
  9. RUN httpd
  10. #拷贝主页index.html文件到指定目录
  11. ADD index.html /var/www/html/
  12. #配置容器运行后执行的指令
  13. CMD ["httpd","-D","FOREGROUND"]
  14. #暴露容器内运行时的端口给外部
  15. EXPOSE 80

上列中的指令 ADD index.html /var/www/html/ 文件我们工作目录下的index.html拷贝到容器的 /var/ww/html/目录下。
5.使用Dockerfile构建镜像
(1)在工作目录下编译Docker文件 docker build -t mycentos
构建成功后查看新的镜像文件
image.png
(2)创建并运行该镜像文件的一个容器 docker run -p 8080:80 -d mycentos
image.png
容器成功启动后,就已经可以提供服务了!
查看本机的8080端口,是否已经接收到了自定义的容器提供的服务。
image.png
发现已经可以正常提供httpd服务了,woc! 容器跑起来就能提供服务了,牛逼。