开发者学堂课程【深入解析 Docker 容器化技术:Docker hub 镜像仓库使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/659/detail/10952
Docker hub 镜像仓库使用
内容介绍
一、docker 仓库
二、举例说明
一、docker 仓库
本次进行对 docker 仓库的讲解。在之前讲的案例中是存在一些问题,比如162服务器当中有镜像 mytomcat,而163服务器也需要镜像 mytomcat,当时讲解的是通过scp 拷贝到163服务器,如果有100台服务器都需要 mytomcat 镜像,是不可能一台一台进行拷贝的,所以可以将 mytomcat 镜像放到仓库中,而其他的服务器需要镜像就从仓库中下载,与 Java 中 maven 仓库相同(需要 jar 包就根据仓库中拿取)。之前讲过镜像仓库默认是 docker hub,也讲过阿里云,docker hub 的话下载速度是比较慢的,因为服务器是在国外的,在实际开发中是使用阿里云,除此之外如果想省钱可以自己搭建私有仓库,下面进行 Docker hub 镜像仓库的讲解。
可以将自己创建的镜像推送到 docker hub 当中,如果要将制作的镜像推送到docker hub 中,首先需要注册 docker hub,打开 docker hub 网站,在访问过程中可以感觉得到访问速度很慢,打开网站后注册账号进行创建仓库,注意在将镜像推送上来时要设置镜像的标签,否则推送不到仓库,网页创建仓库页面如下:
右边蓝色文本框内说明了如何进行推送,第一步为对镜像设置标签,然后再执行docker push 进行推送。
二、举例说明
这里举一个例子说明,如:
docker tag local- image:tagname new-repo:tagname (设置tag)
docker tag 进行设置镜像标签,image 为本地镜像,tagname 为标签名称,new-repo 为新的产户,tagname 为标签名,然后进行登录 docker hub,再将镜像推送上来。
1、设置镜像标签
在本地镜像中可以给镜像设置一个标签,下面先进行查看本地镜像,如:
[root@loca
l
host
rw
-
test
]# docker images
REPOSITORY TAG IMAGE ID CRATED SIZE
rw
_nginx latest cbd149510b76 8 minutes ago 440MB
m
ytomcat latest 505be517d555 4 seconds ago 797MB
centos
latest
67
fa
590
cfc
1
c
4
weeks
ago
202MB
可以看到本地一共有三个镜像,而且镜像内存大小都比较大,所以这里示例就不推送本机的镜像了,那么接下来下载一个hello-world镜像,如:
[root@loca
l
host
rw
-
test
]# docker
pull
hello
-
world
拉取成功后进行查看镜像,如:
[root@loca
l
host
rw
-
test
]# docker images
…
hello
-
world
latest
fce
289
e
99
eb
9 8
mo
… 1.84KB
可以看到镜像大小只有1.84KB,所以等到推送时会比较快。
然后继续对镜像设置一个标签,如:
[root@loca
l
host
rw
-
test
]# do
c
ker tag hello-world:latest 108001509033/test -hello-world:v2
语句 docker tag 表示为设置镜像标签,对本地的 hello-world 中叫做 latest 的镜像进行设置标签,这里需要注意后面跟上的是自己的仓库名,这里示例为登录账号的仓库名,将镜像改名为test -hello-world,为了防止与以前的仓库冲突,这里版本号为v2,然后进行回车执行一次。此时再次进行查看,发现test-hello-world的标签为v2,大小还是为1.84KB,如:
[root@loca
l
host
rw
-
test
]# docker images
…
108001509033/test -hello-world v2 fce289e99eb9 8 …1.84KB
紧接着将镜像进行推送,如:
[root@loca
l
host
rw
-
test
]# docker push 108001509033/test -hello-world:v2
…
errors :
denied: requested access to the resource is denied
unauthorized: authentication required
此时回车推送后出现报错,意思为无效认证,也就是如果要推送到 docker hub 中去,是需要登录的。
2、登录 docker hub
通过 docker login 进行登录,然后输入账号密码,如:
[root@localhost rw-test]# docker login
…
Username: 108001509033
Password :
…
Login succeeded
执行结果如上则登录成功。
3、推送镜像
登录后再次执行推送,如:
[root@localhost rw-test]# docker push 108001509033/test -hello-world:v2
The push refers to repository [docker. io/108001509033/test-hello-world]
…
如上则推送执行成功。而到底推送成功没有可以通过刷新网页进行查看,刷新后查看页面如下:
可以看到页面中出现推送的v2版本,所以在这个里面成功的将镜像推送到 docker hub 中,而后期其他服务器需要镜像的话也是可以直接下载的。以上就是 docker hub 镜像仓库的使用。