使用 Dockerfile 建立镜像 | Docker 系列

以前写镜像的时候说到建立镜像最经常使用的方式是使用 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: 做用相似于 COPYbash

COPYADD 的区别是:ADD 命令功能更多,好比拷贝一个压缩包,ADD 能够将压缩包解压到镜像内,若是是下载连接,ADD 会先下载文件,而后再拷贝。微信

但如今 docker 官方更推荐使用 COPY 命令,一个命令只作一件事。ui

WORKDIR: 指定 Dockerfile 中该命令下的操做所在的工做目录。spa

RUN: 执行命令行命令。

ENV: 设置环境变量。

VOLUME: 挂载数据卷。

EXPOSE: 暴露端口。

CMD: 服务启动命令。

建立镜像

有了 Dockerfile 以后,在 Dockerfile 所在目录执行命令:

# docker build -t <image_name> .
复制代码

就这么简单,镜像就建立好了。

技术博客:

github.com/yongxinz/te…

同时,也欢迎关注个人微信公众号 AlwaysBeta,更多精彩内容等你来。

相关文章
相关标签/搜索