🚀 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 docker

echo "✅ Docker 代理设置完成!🚀"

二、取消 Docker 代理脚本

一键取消代理,让 Docker 恢复正常直连模式。

📄 脚本内容(保存为 unset_docker_proxy.sh

#!/bin/bash

echo "🧹 正在取消 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 docker

echo "✅ Docker 代理已取消!🚀"

三、使用方法总结

操作 命令
设置代理 bash set_docker_proxy.sh
取消代理 bash unset_docker_proxy.sh

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐