搜狐首页 科技 心里的声音

手机搜狐

SOHU.COM

Dockerfile,你给我站住!

东坡并没有有诗曰:

日建镜像三百个,不辞长用Dockerfile。

觉得镜像构建枯燥乏味?困货,快使用Dockerfile吧!

作为一枚构建镜像的老司机,下面跟大家聊聊

吊打Dockerfile的正确姿势

Docker、Dockerfile、Docker镜像、容器……

这都是些啥东西?

虽是老生常谈,再再再普及一下:

- Docker

最早是dotcloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotcloud改成Docker。

- Dockerfile

是Docker镜像的描述文件,可以理解成导弹发射的A、B、C、D……的步骤。

- Docker镜像

是通过Dockerfile做出来的,包含操作系统基础文件和软件运行环境,它使用分层的存储方式。

- 容器

是运行起来的镜像,Docker镜像相当于程序,容器相当于进程。

讲了这么多,大家可能已经意识到了,攘外必先安内,想玩转Docker必须要先搞定Docker镜像,而镜像又来自于Dockerfile,因此本文从Dockerfile编写开始,与您分享Docker镜像的制作过程。

如何通过Dockerfile快速构建镜像?

接下来,我们通过构建一个Tomcat镜像,来演示Dockerfile的使用方法,当然前提是你的电脑安装了Docker环境,Docker环境的安装就不在此赘述了。

1.创建一个Dockerfile

Dockerfile命名必须为“Dockerfile”,Docker镜像构建时,会查找指定目录中的Dockerfile文件。

2.编写Dockerfile

2.1 环境配置

首先,我们需要指定一个基础镜像,为了方便,我们从Ubuntu镜像开始。

FROM ubuntu:14.04

通过FROM指令,Docker编译程序能够知道通过哪个基础镜像执行来进行编译。所有的Dockerfile都必须以FROM指令开始。通过该指令,我们相当于有了一个最基本的Ubuntu系统。

2.2 其他环境配置

我们可以像这样指定Dockerfile的作者

MAINTAINER example

另外我们需要指定时区,否则我们做出的镜像可能会跟当前时间不符。

RUN echo "Asia/Shanghai" /etc/timezone;dpkg-reconfigure -f noninteractive tzdata

精选