虽然Docker Hub上有着大量的镜像,可能会因为各种各样的需求,需要定制适合自身的镜像,结合docker hub可以让你的镜像随时可以通过Docker hub获取
创建Dockerfile文件
$ mkdir ~/mydockerfile
$ cd ~/mydockerfile
$ vim Dockerfile
加入以下行
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
- FROM基于那个镜像进行构建
- RUN在docker镜像载入之前要执行的命令
- CMD当镜像载入完成时要执行的命令
从Dockerfile中构建镜像
$ docker build -t docker-whale .
在构建的过程Docker执行以上三个步骤,并且把信息打印到终端,首先docker从本地查找docker/whalesay镜像,如果没有则从docker hub中获取,接下来开始执行自定义的命令安装fortunes,当镜像(image)完成载入时执行/usr/games/fortune -a | cowsay
运行新构建的镜像image
新的镜像已经构建成功,可以使用docker images
命令来验证是否已经存在该镜像,
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-whale latest 40c25b1a081a 12 minutes ago 274.9 MB
nginx latest 4efb2fcdb1ab 5 days ago 183.4 MB
ubuntu latest f8d79ba03c00 2 weeks ago 126.4 MB
centos latest 970633036444 4 weeks ago 196.7 MB
debian latest 1b01529cc499 4 weeks ago 125.1 MB
hello-world latest c54a2cc56cbb 8 weeks ago 1.848 kB
docker/whalesay latest 6b362a9f73eb 15 months ago 247 MB
接下来运行新的镜像
$ docker run docker-whale
创建Docker hub仓库
注册之后可以在头像的旁边找到,分别由以下几个步骤
1 选择命名空间 (Required)
2 添加仓库 (Required)
3 添加描述
4 添加全描述(支持markdown)
5 设置仓库是否公开
为镜像打标签并推送到Docker Hub
$ docker tag 7d9495d03763 huangyanxiong2012/docker-whale:latest
- 使用命令登录Docker Hub
docker login --username=huangyanxiong2012 --email=youremail@company.com
Flag --email has been deprecated, will be removed in 1.13. 可以忽略
- 推送镜像到Docker Hub
$ docker push huangyanxiong2012/docker-whale
- 合并Docker Hub镜像
删除本地本地镜像
$ docker rmi -f huangyanxiong2012/docker-whale
合并Docker镜像
$ docker run huangyanxiong2012/docker-whale