Dockerfile

Dockerfile是用来构建Docker镜像的构建文件。
是由一系列命令和参数构成的脚本文件。

Dockerfile构建步骤

  1. 编写Dockerfile文件
  2. 构建Docker镜像:docker build
  3. 生成Docker容器:docker run

Dockerfile构建语法格式

  1. 每条保留字指令必须为全大写字母,且后面至少要跟一个参数。
  2. 指令按照从上到下顺序执行。
  3. #代表当前行注释
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交。

Dockerfile保留关键字

FROM

基础镜像,当前镜像是基于哪个镜像的

MAINTAINER

该镜像的作者+邮箱信息

RUN

构建容器时需要执行的命令

EXPOSE

镜像变为实例对外暴露的端口号

WORKDIR

实例登陆后的工作目录;如果不指定,默认为根目录。

ENV

设置镜像的环境变量

COPY

复制文件到镜像中。

ADD

将宿主机目录下的文件复制到镜像,且ADD命令会自动处理URL和解压tar压缩包。

VOLUME

指定容器的数据卷用于持久化

CMD

指定一个容器启动时要运行的命令(替换式)。
CMD会被docker run之后的参数替换。

ENTRYPOINT

指定一个容器启动时要运行的命令(追加式)。
ENTRYPOINT会被docker run之后的参数追加。

ONBUILD

当构建一个被继承的Dockerfile时,父镜像在被继承后父镜像的ONBUILD指令被处罚。

案例:为默认的CentOS镜像增加vim和ifconfig功能

  1. 宿主机任意地方新建Dockerfile文件。
    比如:/myDocker/Dockerfile
    文件内容如下:
FROM centos
MAINTAINER Leon<leon@royotech.com>

ENV mypath /usr/local
WORKDIR $mypath

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD /bin/bash
  1. 构建镜像。
docker build -f /myDocker/Dockerfile -t centos1.1 .
  1. 生成容器。
docker run -it centos1.1

新生成的容器中,可以直接使用vim和ifconfig了。哈哈哈!

发表评论

邮箱地址不会被公开。 必填项已用*标注