Docker系列(二十五)——将本地Docker镜像发布到私有仓库或共有仓库

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

前言

经过前面 docker 系列的文章,认识了什么是 docker ? docker 服务器的安装,docker 常用命令使用详解,docker 镜像的理论概述与使用详解,docker 容器数据卷的理论概述与使用详解,dockerfile 的理论概述及dockerfile指令大全的使用详解,最后完成常用的docker实例的安装与使用(包括:Apache 、Nginx、Tomcat 、MongoDB 等),接下来,本篇将带领读者将Docker镜像发布到私有或共有仓库。

 

将本地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系列(二十五)——将本地Docker镜像发布到私有仓库或共有仓库 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: [email protected]
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/84764934
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

你可能感兴趣的:(Docker,Docker,进阶之路,Docker-CE,Docker,repository,私有仓库,共有仓库,阿里云)