Skip to content
公告

如何使用docker一次性上传不同架构的镜像

注意

本文的主旨是直接给你两个不同架构的镜像 然后让你手动上传的对应的hub 而不是基于一个dockerfile 去 docker buildx 并push 这两者还是有那么一点差距的

同一台设备无法使用重复使用

不知道是不是bug,还是我的方法不对,第二次推送总是老的镜像。所以每次都要重装系统解决。每次centos重装都要预装docker。命令如下,暂时没找到解决方法,不知道怎么处理。

# 安装命令
yum -y install wget git bash-completion net-tools curl make

# 安装docker
curl -fsSL https://get.docker.com | bash

# 启动docker
sudo systemctl start docker

已经写成脚本,直接运行即可

wget -O DockerPush.sh --no-check-certificate http://47.97.11.31:6008/shc/DockerPush.sh && bash DockerPush.sh

操作方法

  1. 使用docker login命令登录到Docker Hub,需要提供用户名和密码
docker login -u nobody114 -p Wu7088757408#
  1. 使用docker一次性上传不同架构的镜像
sh
docker pull hslr/sun-panel:1.2.0-beta23-12-10@sha256:75dd4f0005c17b83d02460826ba0f9f25e3401a374e9390fc3967c7a61a2f2ab
docker pull hslr/sun-panel:1.2.0-beta23-12-10@sha256:beb25e2b2a941616050f228efa501c1ec79ca3fff5a11ccdbbca99b7315f9e46
 
# 分别打上对应的标签: 并推送镜像
docker tag hslr/sun-panel:1.2.0-beta23-12-10@sha256:75dd4f0005c17b83d02460826ba0f9f25e3401a374e9390fc3967c7a61a2f2ab nobody114/nav:amd64
docker tag hslr/sun-panel:1.2.0-beta23-12-10@sha256:beb25e2b2a941616050f228efa501c1ec79ca3fff5a11ccdbbca99b7315f9e46 nobody114/nav:arm64

docker push nobody114/nav:amd64
docker push nobody114/nav:arm64

# 创建manifest包含两个不同架构镜像
docker manifest create --amend nobody114/nav:latest nobody114/nav:amd64 nobody114/nav:arm64

# 标注不同架构镜像
docker manifest annotate nobody114/nav:latest nobody114/nav:amd64 --os linux --arch amd64
docker manifest annotate nobody114/nav:latest nobody114/nav:arm64 --os linux --arch arm64

# 推送镜像
docker manifest push nobody114/nav:latest
  1. 下载启动容器
docker run -d --restart=always -p 5003:3002 \
-v /volume2/docker/sun-panel/conf:/app/conf \
-v /volume2/docker/sun-panel/uploads:/app/uploads \
-v /volume2/docker/sun-panel/database:/app/database \
--name 00-nav \
nobody114/nav:latest

本博客为分享文档,仅供个人学习参考。