本地镜像发布到私有库、阿里云
一、流程图
二、发布到阿里云
1.登录阿里云后 -进入容器镜像服务 -进入个人实例
2.先创建命名空间
3.在创建镜像仓库 选择刚才创建的命名空间
4.创建好后 调整的页面(仓库管理页面)有发布的步骤 根据提示可以发布
1. 登录阿里云Docker Registry(拉去和推送都需要先登录)
docker login --username=阿里账户 registry.cn-beijing.aliyuncs.com
2. 从Registry中拉取镜像
docker pull registry.cn-beijing.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
3. 将镜像推送到Registry
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
三、发布到私有库
1.下载镜像Docker Registry(仓库)
docker pull registry
2.运行私有库Registry,相当于本地有个私有Docker hub
docker run -d -p 5000:5000 -v /registry/myregistry/:/tmp/registry --privileged=true registry
3.curl验证私服库上有什么镜像
curl -XGET http://仓库的ip:5000/v2/_catalog
4.将新镜像修改符合私服规范的Tag(这个镜像最好是修改过的,最后验证就验证修改的地方)
按照公式: docker tag 镜像:Tag Host:Port/Repository:Tag
自己host主机IP地址,
使用命令 docker tag 将这个镜像修改为 仓库的ip:5000/myubuntu:1.0
docker tag zzyyubuntu:1.0 仓库的ip:5000/myubuntu:1.0
5.修改配置文件使之支持http(docker默认不允许http方式推送镜像)
vim /etc/docker/daemon.json
添加 "insecure-registries": ["仓库的ip:5000"]
deamon 是json格式 上一行最后加上逗号
{
"registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],
"insecure-registries": ["仓库的ip:5000"]
}
6.push推送到私服库
docker push 仓库ip:5000/myubuntu:1.0
7.curl验证私服库上有什么镜像
curl -XGET http://仓库的ip:5000/v2/_catalog
8.pull到本地并运行验证
docker pull 仓库ip:5000/myubuntu:1.0
例:
1.先启动一个容器 下载ifconfig命令包 可以执行命令后 退出容器
2.将容器commit为新的镜像(myubuntu:1.0镜像中有ifconfig命令包)
3.启动私有库
4.curl验证私服库上有什么镜像
5.将新镜像修改符合私服规范的Tag
6.修改配置文件使之支持http(这一步会出现问题 如果修改完推送不好使 重启一下docker之后在推送试试 如下图片就是没有重启 推送失败)
重启docker后需要启动容器在进行推送
7.push推送到私服库 curl查看是否推送成功
8.验证是否推送正确 pull到本地并运行