windows—wsl2—docker配置代理以push/pull

docker配置代理

  • 需求背景
  • [1. Windows配置代理](#1. Windows配置代理)
    • [1.1 cmd中配置/测试代理](#1.1 cmd中配置/测试代理)
    • [1.2 git中配置/测试代理](#1.2 git中配置/测试代理)
  • [2. wsl中配置代理](#2. wsl中配置代理)
  • [3. wsl-docker中配置代理](#3. wsl-docker中配置代理)
    • [3.1 配置docker代理](#3.1 配置docker代理)
    • [3.2 推送images](#3.2 推送images)

需求背景

docker push时显示连接超时

1. Windows配置代理

1.1 cmd中配置/测试代理

(1)配置代理。

win + R 打开运行框,输入cmd命令进入命令行,执行:

python 复制代码
set all_proxy=127.0.0.1:7890

或者

python 复制代码
set http_proxy=127.0.0.1:7890
set https_proxy=127.0.0.1:7890

(2)测试代理

python 复制代码
curl https://www.google.com

1.2 git中配置/测试代理

(1)配置代理

python 复制代码
export all_proxy="http://127.0.0.1:7890"

(2)测试代理

python 复制代码
curl https://www.google.com

2. wsl中配置代理

(1)配置代理

与git类似的linux环境,但由于使用电脑网络、代理。需要额外的两步配置。

首先在代理软件中打开局域网LAN:

其次,在wsl中获取windows的ip:

python 复制代码
cat /etc/resolv.conf

最后,使用宿主ip设置代理

python 复制代码
export all_proxy="http://172.19.240.1:7890"

此外,wsl可在~/.bashrc中添加自动检查主机ip并设置代理,实现进入wsl时自动加载代理。

python 复制代码
WSL_HOST=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export http_proxy="http://${WSL_HOST}:7890"
export https_proxy="http://${WSL_HOST}:7890"
export ALL_PROXY="http://${WSL_HOST}:7890"
echo "Proxy set to ${WSL_HOST}:7890"

修改后重新加载.bashrc使之生效

python 复制代码
source ~/.bashrc

(2)测试代理

python 复制代码
curl https://www.google.com

3. wsl-docker中配置代理

3.1 配置docker代理

docker推送、拉取基于docker daemon实现,可继承wsl的环境变量实现代理,具体如下:

(1)查看docker 当前代理

python 复制代码
docker info | grep -i proxy

(2)继承wsl的环境变量

python 复制代码
#1.1 停止当前的 dockerd
sudo pkill dockerd
sudo rm -f /var/run/docker.pid
#1.2 启动继承环境变量的 daemon
sudo -E dockerd -H unix:///var/run/docker.sock > ~/docker.log 2>&1 &

(3)验证继承代理

(4)取消继承代理

python 复制代码
#1.1 停止当前的 dockerd
sudo pkill dockerd
sudo rm -f /var/run/docker.pid
#1.2 启动不继承环境变量的 daemon
sudo dockerd -H unix:///var/run/docker.sock > ~/docker.log 2>&1 &

3.2 推送images

首先docker login,输入用户名和PAT(Presonal Access Token)登录。然后推送:

python 复制代码
docker push usr/images:version


ps: 若pull/push出现超时retry时,可先退出,docker login后重试。

已同步到docker hub中。

相关推荐
多弗朗皮卡丘11 小时前
C语言梦开始的地方16:结构体
c语言·开发语言·windows
polarislove021411 小时前
Windows安全中心网络盘打开文件提示“打开这些文件可能会对你的计算机有害”的解决方法
网络·windows·安全
无念是……11 小时前
K8s 控制器管理详解|RC、RS、Deployment、StatefulSet、DaemonSet、Job&CronJob
云原生·容器·kubernetes·控制器
EterNity_TiMe_11 小时前
一个网页管理多种远程连接:Docker 部署 Next Terminal 与资产审计
运维·人工智能·docker·ai·容器
mohesashou12 小时前
k8s的pod管理
云原生·容器·kubernetes
李少兄12 小时前
Windows 系统 Hosts 文件完全指南
windows
录大大i12 小时前
Windows前端开发环境搭建终极实战文档(Nvm+Node+Pnpm+Nrm)
windows
Dovis(誓平步青云)12 小时前
心情日记的安全编辑流程:输入校验、删除确认与状态回收
android·运维·服务器·开发语言·windows·安全
蒲锘12 小时前
DevOps 实验阶段四:Infra 节点 + MySQL + Spring Boot 容器化
spring boot·mysql·docker
sg_knight12 小时前
openCode 安装与初始化配置(Windows / macOS / Linux)
linux·windows·macos·llm·agent·ai编程·opencode