Dockerfile实战:构建基础的ubuntu14.04镜像

我们可以从Docker Hub上下载官方仓库中的镜像,我自己就下载了ubuntu镜像,只有188M左右,很小巧了。但是看了下,里面的软件源还是官方的,而且没有安装vim,所以就打算自己写一个Dockerfile,用它来构建适合自己的ubuntu基础镜像。

deb http://archive.ubuntu.com/ubuntu/ trusty main restricteddeb构建上下文

build context,一个自定义的文件夹,里面放置Dockerfile和一些需要的文件。比如我的:

.├── baseimage│ ├── Dockerfile│ ├── README.md│ ├── sources.list│ └── vimrcDokerfile

制作image有两种方法:

从现有容器通过commit命令创建 利用Dockerfile构建 方便,灵活,可移植适合部署大量的镜像和容器Dockerfile基础‘#’表示注释,一般Dockerfile第一行注释容器的基本信息和版本。Dockerfile以命令:参数为基本构建语句,命令全部大写,后面的参数视命令而定

FROM,必须是第一个命令项,表示我的镜像是以哪个镜像为基础构建的

FROM ubuntu

MAINTAINER,后面接构建这的姓名和邮箱,方便联系

MAINTAINER adolphlwq <kenan3015@gmail.com>

LABEL,用键值对的方式来指定image的元数据

LABEL Description=”it is used as a basic image for DuoHuoStudio and my study.I will update and install vim.” Vendor=”Basic image”

ADD,在构建时向Docker daemon传递文件

ADD sources.list /etc/apt/

RUN,接操作和命令sudo apt-get install -y vim等

ADD sources.list /etc/apt/

CMD,构建成功的镜像第一次启动时默认启动的命令

CMD只有1条,,一般默认在Dockerfile的最后如果有多个CMD,只有最后一个起作用CMD会被docker run ..后面的命令覆盖 CMD [“/bin/bash”]

ENV,设置环境变量

ENV REFRESHED_AT 2015-05-18构建命令cd baseimage(构建上下文文件夹)docker build -t=”duohuosrudio/ubuntu:14.04_64_base_image” .

docker build中-t表示容器的名字 duohuosrudio/ubuntu中duohuostudio表示仓库名(不允许大写),ubuntu表示镜像名。 ubuntu:14.04_64_base_image后的14.04_64_base_image是标签,如果没有指定,默认的是latest

构建过程:

实践中遇到的错误

如果除错停止构建了也不要担心,Docker会把构建过程中的文件都缓存起来,再次构建时会从缓存的地方开始,节省时间。

除错停止后docker images会出现一个只有IMAGE ID的镜像,这个就是构建失败后留下的缓存,我们可以通过image id来运行这个镜像,然后执行除错的命令来检查为什么出错!(下图的最后1行)

adolphdocker imagestest/ubuntu14.04_64_base_image e9390454465c14 hours ago269.1 MBtest2/ubuntu14.04_64_base_image e9390454465c14 hours ago269.1 MBduohuostudio/ubuntu14.04_64_base_image e9390454465c14 hours ago269.1 MB<none><none>f6efc4dac25a16 hours ago269.1 MB总结docker build

这条命令的最后一个参数是用来指定Dockerfile的路径,千万不要忘记。

dockerfile已经上传到 github 地址

镜像也已经上传到Docker Hub上了,可以通过下列命令下载镜像

docker pull adolphlwq/ubuntu

背着背包的路上,看过许多人,听过许多故事,

Dockerfile实战:构建基础的ubuntu14.04镜像

相关文章:

你感兴趣的文章:

标签云: