Dockerfile实战:构建基础的ubuntu14.04镜像
2015-05-19 17:46
1171 查看
我们可以从Docker Hub上下载官方仓库中的镜像,我自己就下载了ubuntu镜像,只有
Dockerfile…这个是必须的
sources.list…自己在官方社区找的ubuntu14.04的源
vimrc…安装好vim后用到的配置文件。我事先配置好的,都是些基础的配置。
从现有容器通过
dockerfile中不方便的操作可以在容器中操作然后提交
没有批量启动容器的需要
自己学、习练习,不需要移植
利用Dockerfile构建
方便,灵活,可移植
适合部署大量的镜像和容器
Dockerfile以
FROM,必须是第一个命令项,表示我的镜像是以哪个镜像为基础构建的
MAINTAINER,后面接构建这的姓名和邮箱,方便联系
LABEL,用键值对的方式来指定image的元数据
ADD,在构建时向Docker daemon传递文件
RUN,接操作和命令
CMD,构建成功的镜像第一次启动时默认启动的命令
CMD只有1条,一般默认在Dockerfile的最后
如果有多个CMD,只有最后一个起作用
CMD会被
ENV,设置环境变量
构建过程:
ADD后面必须接两个参数,
ADD添加的文件必须以
如果除错停止构建了也不要担心,Docker会把构建过程中的文件都缓存起来,再次构建时会从缓存的地方开始,节省时间。
除错停止后
这条命令的最后一个参数是用来指定Dockerfile的路径,千万不要忘记。
dockerfile已经上传到 github 地址
镜像也已经上传到
188M左右,很小巧了。但是看了下,里面的软件源还是官方的,而且没有安装
vim,所以就打算自己写一个
Dockerfile,用它来构建适合自己的ubuntu基础镜像。
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted ...................
构建上下文
build context,一个自定义的文件夹,里面放置Dockerfile和一些需要的文件。比如我的:
Dockerfile…这个是必须的
sources.list…自己在官方社区找的ubuntu14.04的源
vimrc…安装好vim后用到的配置文件。我事先配置好的,都是些基础的配置。
. ├── baseimage │ ├── Dockerfile │ ├── README.md │ ├── sources.list │ └── vimrc
Dokerfile
制作image有两种方法:从现有容器通过
commit命令创建
dockerfile中不方便的操作可以在容器中操作然后提交
没有批量启动容器的需要
自己学、习练习,不需要移植
利用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
构建过程:
实践中遇到的错误
apt-get upgrade和
apt-get install vim都要加上* -y*选项,不然会报错
ADD后面必须接两个参数,
ADD <src>... <dest>表示要添加的文件,表示文件添加到哪里。
ADD添加的文件必须以
构建上下文为根目录来找,不能超出构建上下文的范围。
如果除错停止构建了也不要担心,Docker会把构建过程中的文件都缓存起来,再次构建时会从缓存的地方开始,节省时间。
除错停止后
docker images会出现一个只有
IMAGE ID的镜像,这个就是构建失败后留下的缓存,我们可以通过image id来运行这个镜像,然后执行除错的命令来检查为什么出错!(下图的最后1行)
adolph@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
总结
docker build -t="duohuostudio/ubuntu:14.04_64_base_image" .
这条命令的最后一个参数是用来指定Dockerfile的路径,千万不要忘记。
dockerfile已经上传到 github 地址
镜像也已经上传到
Docker Hub上了,可以通过下列命令下载镜像
docker pull adolphlwq/ubuntu
相关文章推荐
- 【Dockerfile】CentOS6.x中Docker通过Dockerfile构建常用的基础环境 # 设置基本的镜像,后续命令都以这个镜像为基础 FROM centos # 作者信息 MAI
- Docker入门实战(三)——用Dockerfile构建镜像
- Docker入门实战(三)——用Dockerfile构建镜像
- 用dockerfile构建基于ubuntu的lnmp环境的镜像
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- 【Dockerfile】Ubuntu中Docker通过Dockerfile构建常用的基础环境
- 在ubuntu14.04上构建docker私有镜像库
- tomcat基础镜像构建Dockerfile
- 基于Ubuntu 14.04构建mysql5.6 Docker镜像
- 使用dockerfile 构建springboot 的docker镜像
- 如何使用Dockerfile构建镜像
- Docker实战:使用Dockerfile创建镜像
- 如何使用Dockerfile构建镜像
- docker筑基篇-04-使用Dockerfile构建自己的镜像
- 使用Dockerfile构建镜像
- Dockerfile构建本地镜像
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像
- 为docker创建ubuntu带SSH的基础镜像
- (一)构建基于ubuntu docker MySQL 5.6 镜像并推送到Docker Hub
- Dockerfile构建镜像与部署