Docker的实例小教程--Dockerfile制作镜像(1)

过了一两个月,想继续深入的了解一下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

    1. 首先,使用FROM指令,来指定基础镜像。
    2. 使用MAINTAINER说明该镜像是制作维护人,和邮箱
    3. 将sources.list添加到镜像中的/etc/apt/目录下
    4. 为了验证是否成功,在镜像中,执行一次apt-get update命令。
FROM ubuntu:14.04
MAINTAINER Adam Gao “solonot@163.comADD 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

高高宇在学习计算机技术的同时,还在学习中医养生,和股票投资,我已经把全部的学习笔记都放到了我的微信公众号上。
高高宇读书的微信公众号

猜你喜欢

转载自blog.csdn.net/q26335804/article/details/52894757