避坑,docker 拉取远程多架构镜像并推送私服

由于遇到arm的架构服务器,原有构建的docker 项目镜像不可用,构建过程中,遇到把镜像推送私服再构建不可用,发现单次多架构的镜像,拉取下来是符合当前架构的,为了拉取原有多架构的镜像,推送自己私服,要注意多个架构一起处理。

1、注意正常 docker pull 的情况下,都是只会拉取适合当前架构的版本镜像,所以私服传导时构建就会出现问题

2、拉取不同架构的镜像

#获取镜像源的明细
docker manifest inspect docker.m.daocloud.io/openjdk:8
#注意截图里的 amd64 和 linux ,这里说明运行环境,还有 amd64 但os 是windows 的,注意别选错

#分别拉取镜像 @ 后面是镜像中 digest 信息
docker pull docker.m.daocloud.io/openjdk:8@sha256:53ff4b6f85a89d88a34a0e8a00f1df940d15aee8cc1c717f919cc368ece0218e
docker pull docker.m.daocloud.io/openjdk:8@sha256:3af2ac94130765b73fc8f1b42ffc04f77996ed8210c297fcfa28ca880ff0a217


#重新标记,tag 也有可能是none ,这里调整标记命令即可,10.130.79.6:5000就是此处的私服地址

docker tag docker.m.daocloud.io/openjdk:8@sha256:53ff4b6f85a89d88a34a0e8a00f1df940d15aee8cc1c717f919cc368ece0218e 10.130.79.6:5000/openjdk:8-amd64
docker tag docker.m.daocloud.io/openjdk:8@sha256:53ff4b6f85a89d88a34a0e8a00f1df940d15aee8cc1c717f919cc368ece0218e 10.130.79.6:5000/openjdk:8-arm64

#先推送远程
docker push 10.130.79.6:5000/openjdk:8-amd64
docker push 10.130.79.6:5000/openjdk:8-arm64
#创建一个多架构镜像清单
docker manifest create 10.130.79.6:5000/openjdk:8 10.130.79.6:5000/openjdk:8-arm64 10.130.79.6:5000/openjdk:8-amd64
#添加架构信息
docker manifest annotate 10.130.79.6:5000/openjdk:8 10.130.79.6:5000/openjdk:8-amd64 --arch amd64 --os linux
docker manifest annotate 10.130.79.6:5000/openjdk:8 10.130.79.6:5000/openjdk:8-arm64 --arch arm64 --os linux --variant v8

#推送私有镜像
docker manifest push 10.130.79.6:5000/openjdk:8

#这样就可以去验证,在不同架构下去拉取镜像进行验证,或是通过以下命令,查看 maniftests 是否支持多架构
docker manifest inspect 10.130.79.6:5000/aees:latest

要搭建Docker私有仓库,您可以按照以下步骤进行操作: 1. 安装Docker:首先,确保您的系统上已经安装了Docker。您可以从Docker官方网站(https://www.docker.com/)上下载安装适用于您操作系统的版本。 2. 创建Docker私有仓库容器:使用以下命令创建一个Docker私有仓库容器: ``` docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在本地主机的5000端口上启动一个私有仓库容器,将其命名为`registry`。 3. 配置Docker客户端:编辑Docker配置文件,使其能够连接到私有仓库。在Linux系统上,配置文件位于`/etc/docker/daemon.json`,在Windows上,配置文件位于`C:\ProgramData\docker\config\daemon.json`。如果配置文件不存在,可以创建一个新的。 在配置文件中添加以下内容: ``` { "insecure-registries" : ["your-server-ip:5000"] } ``` 将`your-server-ip`替换为您私有仓库所在的服务器IP地址。如果您的私有仓库在本地主机上,可以使用`localhost`或`127.0.0.1`。 4. 重启Docker服务:保存关闭配置文件后,重启Docker服务以使配置生效。您可以使用以下命令来重启Docker服务: ``` sudo systemctl restart docker ``` 5. 使用私有仓库:现在您可以使用私有仓库来推送镜像。例如,要推送一个镜像到私有仓库,使用以下命令: ``` docker tag image-name your-server-ip:5000/image-name docker push your-server-ip:5000/image-name ``` 将`image-name`替换为您要推送镜像的名称。 要从私有仓库中镜像,使用以下命令: ``` docker pull your-server-ip:5000/image-name ``` 将`image-name`替换为您要镜像的名称。 这样,您就成功搭建了一个Docker私有仓库。您可以在私有仓库中存储和管理自己的镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值