Dockerfile
Dockerfile是用来构建Docker镜像的构建文件。
是由一系列命令和参数构成的脚本文件。
Dockerfile构建步骤
- 编写Dockerfile文件
- 构建Docker镜像:docker build
- 生成Docker容器:docker run
Dockerfile构建语法格式
- 每条保留字指令必须为全大写字母,且后面至少要跟一个参数。
- 指令按照从上到下顺序执行。
- #代表当前行注释
- 每条指令都会创建一个新的镜像层,并对镜像进行提交。
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功能
- 宿主机任意地方新建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
- 构建镜像。
docker build -f /myDocker/Dockerfile -t centos1.1 .
- 生成容器。
docker run -it centos1.1
新生成的容器中,可以直接使用vim和ifconfig了。哈哈哈!