存储镜像到Docker Hub
(对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。)
到目前为止,我们已经学习了docker的基本用法,包括拉取镜像,运行容器,编译镜像文件等等。接下来,我们将学习如何通过docker hub来简化你的操作,并提高你的工作效率。 Docker Hub是Docker的主仓库,由Docker公司进行维护。这个仓库里面包含了系统的官方镜像,同时提供简单的用户认证信息,以及其他的附属功能。默认情况下,这个仓库是免费的,但是你的所有镜像也是公开的。跟github类似,如果你需要一个私有的仓库,那么需要付费。
1 Docker Hub相关的命令
Docker 本身和仓库相关的命令包括docker search, pull, login, push。下面我们将详细介绍这些命令的用法。
1.1 用户创建和登录
如果你没有Docker Hub账号,你可以从https://hub.docker.com进行注册。注册成功后,通过下面命令进行登录:
$docker login
这个命令将提示你输入用户名和密码。你的用户信息将被纪录在~/.docker/config.json文件中。
1.2 搜索镜像
你可以在Docker Hub主页上搜索镜像,不过我一般喜欢在命令行中进行搜索。
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS 1223 [OK]
tianon/centos CentOS 5 and 6, created using rinse instea... 33
...
上面查找出了两个镜像,第一个是centos,这个是官方镜像,没有任何前缀; tianon/centos 是tianon用户自己的centos,从这而你也可以看出,用户的镜像默认是公开的。 当你找到镜像以后,你可以执行docker pull :
$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
f1b10cd84249: Pull complete
c852f6d61e65: Pull complete
7322fbe74aa5: Pull complete
Digest: sha256:90305c9112250c7e3746425477f1c4ef112b03b4abe78c612e092037bfecc3b7
Status: Downloaded newer image for centos:latest
执行完毕后,centos镜像就被拉取到本地了。
1.3 下载指定版本的镜像
使用docker pull centos 等同于docker pull centos:latest。如果想下载其他版本的镜像,可以指定相应的tag,比如:docker pull centos:centos5。
2 提交镜像到Docker Hub
每个人都可以将公共的镜像提交到Docker Hub Registry,只是这个是公共的仓库。
2.1 推送镜像到Docker Hub
如果你要推送镜像到Docker Hub,你需要一个命名的Image。其格式如下:
$ docker push yourname/newimage
2.2 Tag镜像
如果你的镜像是自己构建的,你需要用docker tag来进行标记后,再进行提交。如果你想提交容器,就需要先docker commit成镜像,再提交。
root@gctest:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ghostcloud.cn:5005/gcali 2.0.7 e1ccd7f9bf75 22 minutes ago 219.6 MB
ubuntu vivid d893c6708298 2 weeks ago 131.3 MB
ubuntu trusty e9ae3c220b23 4 weeks ago 187.9 MB
ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB
ubuntu precise 2a7a952931ec 4 weeks ago 136.1 MB
ubuntu wily 5eb72b199374 6 weeks ago 131.4 MB
root@gctest:~# docker tag ubuntu:latest shev/ubuntu:latest
root@gctest:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ghostcloud.cn:5005/gcali 2.0.7 e1ccd7f9bf75 23 minutes ago 219.6 MB
ubuntu vivid d893c6708298 2 weeks ago 131.3 MB
shev/ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB
ubuntu latest e9ae3c220b23 4 weeks ago 187.9 MB
ubuntu trusty e9ae3c220b23 4 weeks ago 187.9 MB
ubuntu precise 2a7a952931ec 4 weeks ago 136.1 MB
ubuntu wily 5eb72b199374 6 weeks ago 131.4 MB