咱们能够从Docker Hub上下载官方仓库中的镜像,我本身就下载了ubuntu镜像,只有
188M
左右,很小巧了。可是看了下,里面的软件源仍是官方的,并且没有安装vim
,因此就打算本身写一个Dockerfile
,用它来构建适合本身的ubuntu基础镜像。git
languagedeb http://archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted ...................
build context
,一个自定义的文件夹,里面放置Dockerfile和一些须要的文件。好比个人:github
language. ├── baseimage │ ├── Dockerfile │ ├── README.md │ ├── sources.list │ └── vimrc
制做image有两种方法:docker
commit
命令建立命令:参数
为基本构建语句,命令所有大写,后面的参数视命令而定FROM,必须是第一个命令项,表示个人镜像是以哪一个镜像为基础构建的ubuntu
languageFROM ubuntu
MAINTAINER,后面接构建这的姓名和邮箱,方便联系vim
languageMAINTAINER adolphlwq <kenan3015@gmail.com>
LABEL,用键值对的方式来指定image的元数据缓存
languageLABEL 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传递文件bash
languageADD sources.list /etc/apt/
RUN,接操做和命令sudo apt-get install -y vim
等ui
languageADD sources.list /etc/apt/
CMD,构建成功的镜像第一次启动时默认启动的命令spa
docker run ..
后面的命令覆盖languageCMD ["/bin/bash"]
ENV,设置环境变量rest
languageENV REFRESHED_AT 2015-05-18
languagecd 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
构建过程:
apt-get upgrade
和apt-get install vim
都要加上** -y**选项,否则会报错ADD <src>... <dest>
表示要添加的文件,表示文件添加到哪里。构建上下文
为根目录来找,不能超出构建上下文的范围。若是除错中止构建了也不要担忧,Docker会把构建过程当中的文件都缓存起来,再次构建时会从缓存的地方开始,节省时间。
除错中止后docker images
会出现一个只有IMAGE ID
的镜像,这个就是构建失败后留下的缓存,咱们能够经过image id来运行这个镜像,而后执行除错的命令来检查为何出错!(下图的最后1行)
languageadolph@geek:~/programs/DockerWorkspace/dockerfile/baseimage$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE test/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB test2/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB duohuostudio/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB <none> <none> f6efc4dac25a 16 hours ago 269.1 MB
languagedocker build -t="duohuostudio/ubuntu:14.04_64_base_image" .
这条命令的最后一个参数是用来指定Dockerfile的路径,千万不要忘记。
dockerfile已经上传到 github 地址
镜像也已经上传到Docker Hub
上了,能够经过下列命令下载镜像
docker pull adolphlwq/ubuntu