安装代理:略
安装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
571

被折叠的 条评论
为什么被折叠?



