第八章 使用Dockerfile创建镜像

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

8.1 基本结构

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

例如:

[[email protected] ~]# mkdir nginx

[[email protected] nginx]# vi Dockerfile

#docker for nginx

FROM ubuntu:14.04

MAINTAINER lxldoudou [email protected]

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

然后保存、退出

[[email protected] 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

[[email protected] ~]# mkdir apache

[[email protected] ~]# cd apache/

[[email protected] apache]# vi Dockerfile

FROM httpd:2.4

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

[[email protected] apache]# mkdir public-html

[[email protected] apache]# vi public-html/index.html

<!DOCTYPE html>

<html>

<body>

<p>Hello, Docker!</p>

</body>

</html>

[[email protected] apache]# docker build -t apache2 .

[[email protected] apache]# docker images

REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE

apache2                       latest              cc2305fc3d5d        18 seconds ago      178 MB

[[email protected] apache]# docker run -it --rm --name apache-container -P apache2:lates

[[email protected] nginx]# curl http://192.168.161.128:32768

<!DOCTYPE html>

<html>

<body>

<p>Hello, Docker!</p>

</body>

</html>

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

时间: 2024-11-10 16:21:35

第八章 使用Dockerfile创建镜像的相关文章

使用 Dockerfile 创建镜像

简介 Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像. 本文首先将介绍Dockerfile典型的基本结构及其支持的众多指令,并具体讲解通过这些指令来编写定制镜像的Dockerfile. 最后,会介绍使用Dockerfile创建镜像的过程. 基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行. 一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令.例如: # 第一行必须指定

docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker version 查看docker的版本号 */ 1.2 docker的启动,停止,重启,查看状态. // service docker start/stop/restart/status 二.镜像命令? 1. 列举出所有的镜像(本地镜像) /* docker images 所拥有的参数: dock

7 docker-使用dockerfile创建镜像

在前面的实验中我们多次用到的 Dockerfile,在本实验里我们将通过完成一个实例来学习Dockerfile的编写. 本节中,我们需要依次完成下面几项任务: Dockerfile 基本框架    Dockerfile 编写常用命令    从 Dockerfile 构建镜像 本次实验的需求是完成一个Dockerfile,通过该Dockerfile创建一个Web应用,该web应用为apache托管的一个静态页面网站,换句话说,我们写一个Dockerfile,用来创建一个实验楼公司的网站应用,就是h

dockerfile创建镜像(二)

ENTRYPOINT 两种格式: ENTRYPOINT [“executable”, “param1”, “param2”] ENTRYPOINT command param1 param2 (shell中执行). 在运行时,可以被--entrypoint参数覆盖,如docker run --entrypoint 每个Dockerfile中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效. VOLUME 格式为 VOLUME [“/data”] . 创建一个可以从本地主机或其他

Docker基础-使用Dockerfile创建镜像

1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command ] .. # Base image to use, this nust be set as the first line FROM ubu

Dockerfile创建镜像模板详解

Dockerfile是一个文本格式的配置文件,用户可以使用Dockfile快速创建自定义的镜像.Dockerfile是由一行行的命令语句组成,并且支持以#开头的注释行.vi Dockerfile#一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动是执行的指令.模板如下: #This dockerfile uses the ubuntu image#指定基于的基础镜像,可以使用多个FROM指令,每个镜像一次#FROM <image>或FROM <im

Docker-使用Dockerfile创建镜像

Dockerfile是一个文本格式的配置文件,用户可以使用Docker来快速创建自定义的镜像 基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行 一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和启动时执行指令 FROM ubuntu MAINTAINER docker_user [email protected] RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main un

[转]Docker基础-使用Dockerfile创建镜像

本文转自:https://www.cnblogs.com/jie-fang/p/7927643.html 1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command ] .. # Base imag

dockerfile创建镜像

dockerfile用来快速创建自定义镜像 基本结构 dockerfile分为部分:基础镜像信息,维护者信息,镜像操作指令,容器启动时执行指令 一开始必须指明所基于的镜像名称->维护者信息->镜像操作指令(RUN)->运行容器时的操作命令(CMD) 指令说明 FROM 功能为指定基础镜像,并且必须是第一条指令. 如果不以任何镜像为基础,那么写法为:FROM scratch. 同时意味着接下来所写的指令将作为镜像的第一层开始 语法: FROM <image> FROM <