Docker的实例小教程--Dockerfile制作镜像(1)
Dockerfile制作镜像。这第一个镜像自然是简单又实用,以官方ubuntu 14.04为基础,更改默认的软件源。我将其命名为ali.ubuntu,日后使用这个镜像,执行apt-get相关命令的时候,可以节省不少时间。
·
过了一两个月,想继续深入的了解一下Docker,之前两次笔记也学会了一些docker基本的命令了,现在来试一下Dockerfile制作镜像。
这第一个镜像自然是简单又实用,以官方ubuntu 14.04为基础,更改默认的软件源。我将其命名为ali.ubuntu,日后使用这个镜像,执行apt-get相关命令的时候,可以节省不少时间。
- 建立项目文件夹
$ mkdir ali.ubuntu
- 创建项目文件
$ cd ali.ubuntu
$ touch Dockerfile
$ touch sources.list
在项目目录中,有两个文件:
$ pwd
/Users/adam/workspace/ali.ubuntu
$ ls
Dockerfile sources.list
- 将阿里源内容添加到sources.list
下面这个源的内容,适用于ubuntu 14.04.
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
编译Dockerfile
- 首先,使用FROM指令,来指定基础镜像。
- 使用MAINTAINER说明该镜像是制作维护人,和邮箱
- 将sources.list添加到镜像中的/etc/apt/目录下
- 为了验证是否成功,在镜像中,执行一次apt-get update命令。
FROM ubuntu:14.04
MAINTAINER Adam Gao “solonot@163.com”
ADD sources.list /etc/apt/
RUN apt-get update
至此,一切准备工作都做完成,是时候让Docker执行我们的命令了:
$ pwd
/Users/adam/workspace/ali.ubuntu
$ docker build -t kyugao/ali.ubuntu ./
docker build 命令,-t参数指定镜像名称,后面指定项目目录,下面看看执行的结果:
$ docker build -t kyugao/ali.ubuntu ./
Sending build context to Docker daemon 3.584 kB
Step 1 : FROM ubuntu:14.04
---> 1e0c3dd64ccd
Step 2 : MAINTAINER Adam Gao “solonot@163.com”
---> Running in fb678c1c7680
---> 71d73db293d4
Removing intermediate container fb678c1c7680
Step 3 : ADD sources.list /etc/apt/
---> 411de53b11b4
Removing intermediate container 3b22cc5fdebd
Step 4 : RUN apt-get update
---> Running in bf63399b3802
Ign http://mirrors.aliyun.com trusty InRelease
Get:1 http://mirrors.aliyun.com trusty-backports InRelease [65.9 kB]
Get:2 http://mirrors.aliyun.com trusty-proposed InRelease [65.9 kB]
Get:3 http://mirrors.aliyun.com trusty-security InRelease [65.9 kB]
Get:4 http://mirrors.aliyun.com trusty-updates InRelease [65.9 kB]
Get:5 http://mirrors.aliyun.com trusty Release.gpg [933 B]
Get:6 http://mirrors.aliyun.com trusty Release [58.5 kB]
Get:7 http://mirrors.aliyun.com trusty-backports/main Sources [10.3 kB]
Get:8 http://mirrors.aliyun.com trusty-backports/multiverse Sources [1751 B]
Get:9 http://mirrors.aliyun.com trusty-backports/restricted Sources [40 B]
...些处省略太多的log输出...
Fetched 23.2 MB in 27s (841 kB/s)
Reading package lists...
---> 4f1dec752b62
Removing intermediate container bf63399b3802
Successfully built 4f1dec752b62
我们的Dockerfile中一共有四行指令,在docker build的时候,就分成了4步。看到输出的内容,每一步都在上一步的基础上,创建了一个临时的容器用来执行命令,并且在步骤结束的时候,删除该容器。最后一行,Successfully build 4f1dec752b62说明成功生成镜像,它的ID是4f1dec752b62.
让我们用docker images这个命令来查看一下:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kyugao/ali.ubuntu latest 4f1dec752b62 9 hours ago 211.2 MB
高高宇在学习计算机技术的同时,还在学习中医养生,和股票投资,我已经把全部的学习笔记都放到了我的微信公众号上。
更多推荐
已为社区贡献2条内容
所有评论(0)