[2022版]阿里云docker场库使用总结
使用阿里云的优势是 我们的服务器基本会使用阿里云的ECS 可以很好的实现内网访问。(从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。)
阿里云docker私有库的创建
https://cr.console.aliyun.com/cn-hangzhou/instances
docker login --username=liuyijiang3430@qq.com registry.cn-hangzhou.aliyuncs.com
输入密码
创建阿里云docker私有库 注意:
-
1 命名空间:可以使用公司名字
-
2 仓库名称:使用程序名称 (就是程序的名称,每次创建一个项目需要在私有库中创建一个仓库)
-
3 公开 与 私有的区别
1 公开 : push需要密码 pull 可以被任意拉取
2 私有 : push需要密码 pull 需要密码 (如果是集群环境 需要所有的docker服务都登陆一下 docker login)
最后创建的镜像名称会是如下格式 ** 【远程仓库地址】/【命名空间】/【仓库名称:版本号】**
例如
registry.cn-hangzhou.aliyuncs.com/jimliu/springboot:1.0.0
创建本地镜像
使用docker build 将java项目制作为镜像参考《创建java镜像文件.md》
在当前docker环境登陆上 阿里云私有库 这里会用到开始配置的账号密码
注意:如果是docker swarm 集群环境的话 每个docker环境都要事先登陆一次
例如
已经在本地创建好了一个镜像springboot (这个镜像的制作见《创建java镜像文件.md》)
使用docker tag 给这个镜像配置好名称
docker tag [镜像id] registry.cn-hangzhou.aliyuncs.com/jimliu/springboot:1.0.0 #注意这里需要使用开始配置的命名空间,仓库名称,我们只需要指定版本号
docker push registry.cn-hangzhou.aliyuncs.com/jimliu/springboot:1.0.0 #推送的时候需要使用全路径名称
完成后我们可以看到 阿里云仓库里面已经有推送的数据了
可以再另外一个机器上拉取刚才推送到私库的镜像了
关于集群部署的思路
基于jenkins + shell 脚本
Jenkins 编译完成后,使用脚本创建镜像,推送到私有库,然后使用docker swarm来实现发布