ad

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_4.1 Docker Registry

admin 85 2023-10-25

【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第4章,第1节,由陆平、左奇、付光和张晗等编著。

4.1 Docker Registry

镜像仓库是容器三大核心组件中的重要组成部分, Docker 镜像仓库一般有本地镜像仓 库、Docker Hub公共仓库和其他第三方公共仓库三种。 一个 Docker Registry 中可以包含多 个仓库 (Repository); 每个仓库可以包含多个标签 (Tag); 每个标签对应一个镜像。

4.1.1 Docker Hub

Docker Hub是Docker公司官方提供的公共镜像仓库,此镜像库中提供了上万种官方镜 像文件。

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_4.1 Docker Registry

1.注册

使用Docker Hub前需要注册用户账户,访问地址为https://cloud.docker.com, 可以在 此网站上注册用户。如图4-1所示

2.登录及退出

登录 Docker Hub有两种方式, 一种是使用docker login输入用户名及密码以完成

登录,在命令行模式下进行与镜像相关的操作,另外一种就是在 Docker Hub的可视化界面 中操作。

退出 Docker Hub 时,可以使用docker logout直接退出命令行模式。

3.镜像查询

可以通过docker

4.镜像下载

可以通过docker 是否有相关的镜像。

5.镜像上传

可以通过 docker

search进行镜像文件的查询或在官网中进行查找。

pull下载镜像文件。通常在下载前会通过 docker search 搜索

push上传镜像文件。

由于一些特殊原因在国内访问Docker Hub上的服务比较慢,因此国内主流容器云服务 商提供了针对 Docker Hub的镜像服务 (Registry Mirror),这些镜像服务被称为加速器。使 用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub下载的速度 会提高很多。

4.1.2 第三方公共仓库

国内也有一些主流的容器云服务商提供类似于Docker Hub的公开服务。比如网易云镜 像服务、阿里云镜像库、 DaoCloud 镜像市场等,这些镜像仓库上也会提供不少镜像文件供 用户下载使用。

4.1.3 建立私有镜像仓库

Docker公司官方提供的 Docker Hub 镜像仓库由于服务器在国外,网速会非常慢且存在 不安全因素,而国内第三方公共仓库不受自己控制,因此具有一定规模的企业都会建立自 己的私有镜像仓库,上传镜像到私有镜像参考,在构建容器化应用时,可以快速地下载镜 像文件使用。

我们在Docker 1.12以后的版本环境中搭建无认证的 Registry。Dockerd 的配置文件在/ etc/docker/daemon.json 中,如果没有该文件,可以手动创建。

第一步:从 Docker 官方镜像仓库下载Registry。

docker pull registry <版本号>——不指定版本,表示latest 版本

第二步:配置daemon.json, 去掉Docker 默认的https 的访问。

vim /etc/docker/daemon.json

"{insecure-registries":["10,47.43. 100:5000"]

} 增 加insecure-registries 的项目

第三步:重启 Docker, 执行以下命令。

systemctl daemon-reload docker

systemctl restart docker

第四步:无认证方式启动Registry 容器。

docker run -d --name registry -p 5000:5000 --restart=always -v /opt/registry/:/ var/lib/registry/ registry

第五步:测试是否启动容器。在浏览器中访问http://10.47.43.100:5000/v2/ catalog, 如果返回

{"repositories":[]}, 就代表启动成功了。

第六步:上传镜像到镜像仓库测试push 功能。

docker tag MySQL 10.47.43.100:5000/MySQL——必须带有"10.47.43.100:5000/"这个前缀, 然后开始上传镜像到我们建立的私有Registry

docker push 10.47.43. 100:5000/MySQL

再在浏览器中访问http://10.47.43.100:5000/v2/ catalog, 可以看到返回{"repositories": ["MySQL"]}, 说明已经上传成功。

第七步:从镜像仓库下载镜像测试 pul1 功能。

首先删除本机存在的镜像10.47.43.100:5000/MySQL (刚才通过tag 重命名的):

docker rmi 10.47.43. 100:5000/MySQL

然后执行 docker images,可以看到已经没有了10.47.43.100:5000/MySQL 这个镜像。下面开始下载这 个镜像:

docker pull 10.47.43.100:5000/MySQL

然后再执行docker images,可以看到10.47.43.100:5000/MySQL, 说明下载成功了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《给所有人的Python》_第四版_也是给你的一本知识宝典_2.5 用 for语句进行循环操作
下一篇:《给所有人的Python》_第四版_也是给你的一本知识宝典_2.7 使用函数
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×