以前写镜像的时候说到建立镜像最经常使用的方式是使用 Dockerfile,这篇就来重点说一下,究竟是怎么使用 Dockerfile 来建立的。nginx
# 一、第一行必须是 FROM 基础镜像信息
FROM ubuntu
# 二、维护者信息
MAINTAINER docker_user docker_user@email.com
# 三、镜像操做指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list RUN apt-get update && apt-get install -y nginx RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 四、容器启动执行指令
CMD /usr/sbin/nginx 复制代码
Dockerfile 基本就长这样,固然这是一个很简单的例子,还有不少其余命令会在下个小节介绍。git
有几点须要注意,第一行必须是 FROM 命令,表示是基于哪一个基础镜像来建立镜像的。第二行通常是 MAINTAINER 命令,表示维护人信息,但不作硬性要求。最后一行是 CMD 命令,表示启动容器执行的命令,CMD 命令必须在最后一行,若是有多个 CMD 命令,则只有最后一个生效。github
FROM: 必须是 Dockerfile 的首个命令,定义了使用哪一个基础镜像启动构建流程。docker
MAINTAINER: 声明镜像做者。shell
COPY: 将宿主机的文件拷贝到镜像内的指定路径。ubuntu
ADD: 做用相似于 COPY。bash
COPY 和 ADD 的区别是:ADD 命令功能更多,好比拷贝一个压缩包,ADD 能够将压缩包解压到镜像内,若是是下载连接,ADD 会先下载文件,而后再拷贝。微信
但如今 docker 官方更推荐使用 COPY 命令,一个命令只作一件事。ui
WORKDIR: 指定 Dockerfile 中该命令下的操做所在的工做目录。spa
RUN: 执行命令行命令。
ENV: 设置环境变量。
VOLUME: 挂载数据卷。
EXPOSE: 暴露端口。
CMD: 服务启动命令。
有了 Dockerfile 以后,在 Dockerfile 所在目录执行命令:
# docker build -t <image_name> .
复制代码
就这么简单,镜像就建立好了。
技术博客:
同时,也欢迎关注个人微信公众号 AlwaysBeta,更多精彩内容等你来。