《 将本地Docker镜像发布到私有或共有库 》

前言

前面带领读者完成了个人镜像仓库的创建,通过本篇的学习,熟悉如何创建远程镜像仓库,并将本地 docker images 推送到远程创建的镜像库中,在共有云镜像服务平台进行搜索,再将上传的进行拉取到本地。

 

将本地Docker镜像发布到私有或共有库

1、先了解阿里云的 Docke 生态系统,如下图:

2、使用在前面通过 dockerfile 自定义构建的 redis 镜像为例,输入命令 “ docker images huazai/db/redis ” 查看,内容如下:

[root@localhost ~]# docker images huazai/db/redis
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
huazai/db/redis     v1.0                f8ea30f3fbef        About an hour ago   94.9MB

 

3、首先需要注册一个阿里云账号,(阿里云注册入口)并登录阿里云控制台,然后 产品与服务 -> 容器镜像服务 -> 创建镜像仓库,如下图:

 

4、可以创建私有镜像仓库,也可以创建共有镜像仓库,这儿一共有镜像仓库为例,如下图:

 

5、如果有其它源码托管平台的账号可以进行绑定后上传,这儿直接使用本地仓库为示例,选择 “ 本地仓库 ” 后,点击创建镜像仓库,如下图:

 

6、镜像仓库创建完成后,如下图:

 

将本地 docker 镜像拉取/推送到远程仓库

1、登录阿里云Docker Registry

sudo docker login --username=[个人用户名] registry.cn-shanghai.aliyuncs.com

首先需要登录到仓库,登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在产品控制台首页修改登录密码。

 

2、从Registry中拉取镜像

sudo docker pull registry.cn-shanghai.aliyuncs.com/[个人镜像地址]:[镜像版本号]

 

3、将镜像推送到Registry

sudo docker login --username=[个人用户名] registry.cn-shanghai.aliyuncs.com
sudo docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/[个人镜像地址]:[镜像版本号]
sudo docker push registry.cn-shanghai.aliyuncs.com/[个人镜像地址]:[镜像版本号]

请根据实际镜像信息替换示例中的[个人用户名]、[个人镜像地址]、[ImageId]和[镜像版本号]参数

 

4、选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于经典网络,请使用 registry-internal.cn-shanghai.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shanghai.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。

 

5、示例

先使用 docker login 登录,

[root@localhost ~]# sudo docker login --username=芝麻开门尽然真开了 registry.cn-shanghai.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost ~]# 

这儿会有一个镜像,可以先不用管!

使用"docker images"命令找到需要推送的镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。

[root@localhost ~]# docker images huazai/db/redis
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
huazai/db/redis     v1.0                f8ea30f3fbef        3 hours ago         94.9MB

 

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

[root@localhost ~]# sudo docker tag f8ea30f3fbef registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images:v1.0-db6108
[root@localhost ~]# sudo docker push registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images:v1.0-db6108
The push refers to repository [registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images]
e76e670147c1: Pushed 
6a1f6aaf952b: Pushed 
eb2177dbb90f: Pushed 
dcb5f49384db: Pushed 
247eecd82cd8: Pushed 
237472299760: Pushed 
v1.0-db6108: digest: sha256:23f23bbd60c771915d13b9da8280faf57b71368d871a5cf4af988aa2ebceb36f size: 1573

 

上传完成后,就可以在管理控制台中查找到该镜像了,如下图:

 

6、上传成功后,还可以在阿里云的共有云中进行搜索,就能够搜索到了,如下图:

 

7、将刚才上传的镜像拉取到本地镜像仓库中,通过 docker pull 进行拉取,拉取内容如下:

[root@localhost ~]# sudo docker pull registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images:v1.0-db6108
v1.0-db6108: Pulling from huazai_studio/my_db_images
f17d81b4b692: Pull complete 
c5a740602d98: Pull complete 
8d5fef301c0d: Pull complete 
08e988144908: Pull complete 
f52d5d9fd116: Pull complete 
fb2fe4254d15: Pull complete 
Digest: sha256:23f23bbd60c771915d13b9da8280faf57b71368d871a5cf4af988aa2ebceb36f
Status: Downloaded newer image for registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images:v1.0-db6108
[root@localhost ~]# docker images
REPOSITORY                                                     TAG                 IMAGE ID            CREATED             SIZE
registry.cn-shanghai.aliyuncs.com/huazai_studio/my_db_images   v1.0-db6108         f8ea30f3fbef        4 hours ago         94.9MB

 

 

 


 好了,关于 如何实现将 docker 镜像推送到远程共有/私有镜像仓库  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者:华    仔
联系作者:who.seek.me@java98k.vip
来        源:CSDN (Chinese Software Developer Network)
原        文:https://blog.csdn.net/Hello_World_QWP/article/details/84874916
版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐