完整脚本,建议保存为docker-proxy.sh #!/bin/bash # ===================== 用户配置区 ===================== # ▼▼▼ 以下变量必须修改 ▼▼▼ HTTP_PROXY="http://192.168.1.118:7890/" # 改为你的代理IP和端口 HTTPS_PROXY="http://192.168.1.118:7890/" # 同上 NO_PROXY="localhost,127.0.0.1,.corp.com" # 内网域名白名单 # ▲▲▲ 修改结束 ▲▲▲ # ===================== 执行逻辑 ===================== if [ $# -eq 0 ]; then echo "错误：请指定操作模式" echo "用法：sudo $0 {set|remove}" exit 1 fi # 创建配置目录 sudo mkdir -p /etc/systemd/system/docker.service.d/ case "$1" in "set") echo "▶ 正在注入代理配置（目标地址：${HTTP_PROXY}）..." # 生成代理配置文件 sudo tee /etc/systemd/system/docker.service.d/proxy.conf > /dev/null <<EOF [Service] Environment="HTTP_PROXY=${HTTP_PROXY}" Environment="HTTPS_PROXY=${HTTPS_PROXY}" Environment="NO_PROXY=${NO_PROXY}" EOF # 重载服务配置 sudo systemctl daemon-reload sudo systemctl restart docker echo "✔ 代理已生效！" echo " 验证命令：docker info | grep -i proxy" ;; "remove") echo "▶ 正在清除代理配置..." sudo rm -f /etc/systemd/system/docker.service.d/proxy.conf sudo systemctl daemon-reload sudo systemctl restart docker echo "✔ 已恢复原始环境" ;; *) echo "错误：无效参数，支持 set 或 remove" exit 1 ;; esac echo " 注意：若容器网络异常，请尝试重启容器！" 操作指南 chmod +x docker-proxy.sh 修改配置 将192.168.1.118:7890替换为实际代理地址 白名单按需添加（如.alibaba.com、.docker.io） 执行命令 # 设置代理 ./docker-proxy.sh set # 清除代理 ./docker-proxy.sh remove