初识Docker:构建自己的镜像
2016-11-24 00:00
260 查看
构建自己的镜像
whalesay镜像可以做到的更好, 尤其是当你不知道自己想要说什么的时候. 你可以输入更多的命令来让它发声docker run docker/whalesay cowsay boo-boo在接下来,我们将会改进whalesay,构建一个新版本的镜像让他可以“自由说话”
Step1:编写一个Dockerfile文件
在这一步,用你喜欢的编辑器写一个简单的Dockerfile文件,一个Dockerfile文件描述了“刻录(baked)”到镜像里去的软件信息,还有,文件还会告诉软件使用什么样的环境或者运行什么样的命令。我们要写的文件信息将会很简短。进入命令行窗口
创建一个新目录mydockerbuild来存放要写的Dockerfile
$ mkdir mydockerbuild
这个目录就是你等会构建镜像的“上下文”,意味着你构建用的的东西都包含在这里
进入到mydockerbuild目录
$ cd mydockerbuild
目录目前为空
创建Dockerfile
$ touch Dockerfile
打开Dockerfile,用可视化编辑器或vi都行
向文件里添加一行
FROM docker/whalesay:latest
FROM关键字的意思是指我们要基于哪个镜像来构建,这里我们基于之前的whalesay来构建
现在将fortunes软件添加到镜像
RUN apt-get -y update && apt-get install -y fortunes
fortunes软件有个命令可以打印出说谚语的小鲸鱼,那我们第一步就安装它。这条指令就是将fortunes安装到镜像里去
有了需要的软件,通知软件在镜像加载的时候运行
CMD /usr/games/fortune -a | cowsay
这条指令是告诉fortunes软件传一个谚语到cowsay软件
检查你的文件,应该和下面一样:
FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay
保存退出编辑
Step2:使用Dockerfile构建镜像
进入到Dockerfile所在的目录使用
docker build -t docker-whale .命令构建(不要忘了后面的
.)
$ docker build -t docker-whale .
Sending build context to Docker daemon 2.048 kB
...snip...
Removing intermediate container a8e6faa88df3
Successfully built 7d9495d03763
该命令将会花费几秒的时间,打印出构建信息(由于篇幅省略部分,下文会描述详细信息)。在你使用这个镜像之前,先花点时间来了解下Dockerfile的构建过程是怎样的。 ## Step3:学习构建过程 命令`docker build -t docker-whale .`会找到当前目录下的Dockerfile文件,并且在你本地构建一个名叫`docker-whale`的镜像。过程会花费些时间并打印出看上去很长很复杂的信息。接下来,你将学习每一条信息的含义。 首先Docker会检查确保它拥有构建所需的全部东西,发送到Docker引擎
Sending build context to Docker daemon 2.048 kB
然后,Docker加载whalesay镜像。因为whalesay镜像本地已经存在了,就不会去重新下载
Step 1 : FROM docker/whalesay:latest ---> fb434121fc77
下一步是去更新`apt-get`包。有很多行,没必要全部显示在这
Step 2 : RUN apt-get -y update && apt-get install -y fortunes
---> Running in 27d224dfa5b2
Ign http://archive.ubuntu.com trusty InRelease
Ign http://archive.ubuntu.com trusty-updates InRelease
Ign http://archive.ubuntu.com trusty-security InRelease
Hit http://archive.ubuntu.com trusty Release.gpg
....snip...
Get:15 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB]
Get:16 http://archive.ubuntu.com trusty-security/universe amd64 Packages [134 kB]
Reading package lists...
---> eb06e47a01d2
接下来,Docker安装新软件fortunes
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
fortune-mod fortunes-min librecode0
Suggested packages:
x11-utils bsdmainutilsThe following
NEW packages will be installed:
fortune-mod fortunes fortunes-min librecode00 upgraded, 4 newly installed, 0 to remove and 3 not upgraded.
Need to get 1961 kB of archives.
After this operation, 4817 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main librecode0 amd64 3.6-21 [771 kB]
...snip......
Setting up fortunes (1:1.99.1-7) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
---> c81071adeeb5
Removing intermediate container 23aa52c1897c
## Step4:运行你新构建的`docker-whale` 在这一步,我们要验证新的镜像已经存在本地,然后运行起来 1. 进入命令行,输入`docker images`命令按回车 这条命令就是显示本地存在的镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-whale latest 7d9495d03763 4 minutes ago 273.7 MB
docker/whalesay latest fb434121fc77 4 hours ago 247 MB
hello-world latest 91c95931e552 5 weeks ago 910 B
2. 输入命令` docker run docker-whale `运行新的镜像 ![输入图片说明](https://static.oschina.net/uploads/img/201611/24194852_SUxU.jpg "在这里输入图片标题") 你看,现在这条小鲸鱼聪明多了。我们输入命令比以前短了,小鲸鱼会自己找话说!你可能注意到Docker没有去下载任何东西,那是因为我们构建的镜像已经是在本地了
相关文章推荐
- 使用Dockerfile构建自己的etcd镜像
- Docker学习入门之——构建自己的镜像
- 『中级篇』构建自己的Docker镜像(16)
- 构建自己的centos+jdk7+tomcat8的docker镜像
- 构建自己的Docker基础镜像
- 使用dockerfile构建自己的镜像
- docker筑基篇-03-使用docker-commit构建自己的镜像
- docker筑基篇-04-使用Dockerfile构建自己的镜像
- 【081】使用Nginx的官方Docker镜像,启动容器后无法显示自己网站页面,总显示Nginx官方默认页面的问题的解决方法
- jenkins 自动构建docker 推送镜像发布镜像
- 初识Docker:运行whalesay镜像
- 如何使用Dockerfile构建镜像
- Arukas Docker 制作自己的镜像---Docker hub
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像
- Docker学习之四——构建NGINX镜像
- Docker系列~使用Dockerfile构建镜像(三)
- docker构建ssh服务的镜像
- docker构建ssh服务的镜像
- Docker与微服务-使用Maven插件构建Docker镜像