【后端】【Docker】 Docker 动态代理 取消代理完整脚本合集(Ubuntu)
🚀 Docker 动态代理 & 取消代理完整脚本合集(Ubuntu)
一、动态设置 Docker 代理脚本
支持自定义输入代理地址和端口!
📄 脚本内容(保存为 set_docker_proxy.sh
)
#!/bin/bash# 读取用户输入
read -p "请输入代理IP(默认127.0.0.1): " PROXY_IP
read -p "请输入代理端口(默认7890): " PROXY_PORT# 如果没有输入,设置默认值
PROXY_IP=${PROXY_IP:-127.0.0.1}
PROXY_PORT=${PROXY_PORT:-7890}echo "🔧 正在配置 Docker 代理为:${PROXY_IP}:${PROXY_PORT}"# 创建配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d# 写入代理配置
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null <<EOF
[Service]
Environment="HTTP_PROXY=http://${PROXY_IP}:${PROXY_PORT}/"
Environment="HTTPS_PROXY=http://${PROXY_IP}:${PROXY_PORT}/"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF# 配置 DNS
echo "🔧 正在配置 Docker DNS..."
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF# 重启 Docker
echo "🔄 正在重启 Docker..."
sudo systemctl daemon-reload
sudo systemctl restart dockerecho "✅ Docker 代理设置完成!🚀"
二、取消 Docker 代理脚本
一键取消代理,让 Docker 恢复正常直连模式。
📄 脚本内容(保存为 unset_docker_proxy.sh
)
#!/bin/bashecho "🧹 正在取消 Docker 代理配置..."# 删除代理配置文件
sudo rm -f /etc/systemd/system/docker.service.d/http-proxy.conf# 清空 daemon.json 中的 DNS(可选,根据实际情况选择是否删除)
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{}
EOF# 重启 Docker
echo "🔄 正在重启 Docker..."
sudo systemctl daemon-reload
sudo systemctl restart dockerecho "✅ Docker 代理已取消!🚀"
三、使用方法总结
操作 | 命令 |
---|---|
设置代理 | bash set_docker_proxy.sh |
取消代理 | bash unset_docker_proxy.sh |