skopeo:临时使用http代理下载docker镜像

安装代理:略

安装skopeo

提前登录

yum install skopeo
https_proxy=http://username:password@127.0.0.1:7890 \
skopeo login docker.io
# docker login 
# skopeo login harbor.test.com
# skopeo login  http://192.168.2.123 --tls-verify=false  # 如果不需要tls认证

如果提示https_proxy异常,要多试几次,可能中转不太稳定

从docker.io下载到本地daemon

# 如果未执行登录时增加-src-username和-src-password,可忽略
https_proxy=http://username:password@127.0.0.1:7890 \
skopeo copy \
--src-username name123456@qq.com \
--src-password pwd123456\
docker://redis:alpine3.21 docker-daemon:redis:alpine3.21

# docker://redis:alpine3.21 # 来源于docker镜像并使用官方默认域名
# docker-daemon:redis:alpine3.21  # 目标是本地daemon

从docker.io下载并推送到harbor

# 如果未执行登录时增加-src-username和-src-password,可忽略
https_proxy=http://username:password@127.0.0.1:7890 \
http_proxy=http://username:password@127.0.0.1:7890 \
skopeo copy \
--src-username name123456@qq.com \
--src-password pwd123456\
docker://redis:alpine3.21 docker://192.168.2.123/public/redis:alpine3.21  --tls-verify=false

# docker://redis:alpine3.21 # 来源于docker镜像并使用官方默认域名
# docker://192.168.2.123/public/redis:alpine3.21 # 目标是私有harbor仓库

从harbor到harbor

使用此工具,不需要本地安装docker,迁移方案不那么复杂

skopeo copy docker://192.168.2.123/public/redis:alpine3.21 docker://192.168.2.124/public/redis:alpine3.21  --tls-verify=false

从本地daemon到harbor

skopeo copy docker-daemon:myapp:v1   docker://your-registry.com/project/myapp:v1

【简化使用】【推荐】

cd /usr/local/bin/
touch skopeo-pull

#!/bin/bash
# 如果未执行登录时增加--src-username和--src-password

docker_name='name123456@qq.com'
docker_pwd='pwd123456 '
hproxy='http://username:password@127.0.0.1:7890'
IMAGE=$@
if [[ "$IMAGE" != *:* ]]; then
    IMAGE="${IMAGE}:latest"
fi

if docker inspect "$IMAGE" &>/dev/null; then
        echo "=> $IMAGE already exists locally. Skipping."
        exit 0
fi

echo "=> Pulling $IMAGE via proxy..."
https_proxy=$hproxy \
skopeo copy \
--src-username $docker_name \
--src-password $docker_pwd  \
docker://"$IMAGE"  docker-daemon:"$IMAGE"
  • 开始测试:
    skopeo-pull apache/activemq-artemis:latest

使用其他快速方法–有时候会失效

vi /usr/local/bin/docker-pulls 
exec env https_proxy=http://username:password@127.0.0.1:7890 http_proxy=http://username:password@127.0.0.1:7890 docker pull "$@"

开始使用docker-pulls redis:alpine3.21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值