码迷,mamicode.com
首页 > 其他好文 > 详细

第八章 使用Dockerfile创建镜像

时间:2018-06-22 13:49:25      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:变量   install   保存   repos   cut   基本结构   操作   name   http   

Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定呀镜像。

8.1 基本结构

       一般而言,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。

例如:

[root@docker ~]# mkdir nginx

[root@docker nginx]# vi Dockerfile

#docker for nginx

FROM ubuntu:14.04

MAINTAINER lxldoudou 312118551@qq.com

RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/source.list

RUN apt-get update && apt-get install -y nginx

RUN echo "\n daemon off;" >> /etc/nginx/nginx.conf

CMD /usr/sbin/nginx

        然后保存、退出

[root@docker nginx]# docker build -t="ubuntu:nginx" .

#后面记得写Dockerfile的路径

#这样的话就可以创建一个安装了nginx的ubuntu镜像

8.2 指令说明

  1. Dockerfile中以#开头的行全为注释行
  2. FROM <image>:<tag> 指定基础镜像
  3. MAINTAINER <name> 指定维护者信息
  4. RUN <command> 或 RUN ["executable file", "parameter1", ...] 在当前镜像中执行指定命令,执行的结果会被镜像保存
  5. CMD 用法类似于RUN,用于指定Docker容器启动时执行的命令。Dockerfile中只能有一个CMD,并且此CMD命令会被启动Docker容器时指定的参数覆盖
  6. LABEL <key>=<value> <key>=<value> 为Docker镜像指定meta信息,同时会覆盖基础镜像中的meta信息
  7. EXPOSE <port> <port> .... 指定暴露的端口号
  8. ENV <key>=<value> 或者 ENV <key> <value> 指定镜像的环境变量,会被镜像保存下来
  9. ADD <src> <des> 拷贝主机的文件或者目录到镜像中。此命令会自动解压tar文件
  10. COPY <src> <des> 和ADD命令类似,但此命令不会自动解压tar文件
  11. ENTRYPOINT <command> 或 ENTRYPOINT ["executable file", "parameter1", ...] 配置容器启动后启动的命令,类似CMD,但此命令不会被启动Docker容器时指定的参数覆盖
  12. VOLUME ["/data/"] 指定一个可以从主机或者其他容器挂载的挂载点
  13. USER username 指定后续操作所用的用户名
  14. WORKDIR <dir path> 为后续操作指定工作目录
  15. ONBUILD <command> 指定当此镜像作为基础镜像时指定的命令,会在FROM之后执行

8.3 创建镜像

        编写完Dockerfile之后,可以通过docker build 命令来创建镜像。

-f:指定Dockerfile的路径

-t:指定生成镜像的标签信息

8.4 实战-Dockerfileapache

[root@docker ~]# mkdir apache

[root@docker ~]# cd apache/

[root@docker apache]# vi Dockerfile

FROM httpd:2.4

COPY ./public-html /usr/local/apache2/htdocs/

[root@docker apache]# mkdir public-html

[root@docker apache]# vi public-html/index.html

<!DOCTYPE html>

        <html>

                <body>

                        <p>Hello, Docker!</p>

                </body>

        </html>

[root@docker apache]# docker build -t apache2 .

[root@docker apache]# docker images

REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE

apache2                       latest              cc2305fc3d5d        18 seconds ago      178 MB

[root@docker apache]# docker run -it --rm --name apache-container -P apache2:lates

[root@docker nginx]# curl http://192.168.161.128:32768

<!DOCTYPE html>

<html>

<body>

<p>Hello, Docker!</p>

 

</body>

</html>

 

第八章 使用Dockerfile创建镜像

标签:变量   install   保存   repos   cut   基本结构   操作   name   http   

原文地址:https://www.cnblogs.com/lingxiaolong/p/9212352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!