前言
经过前面 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 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |