Ubuntu中为curl和Docker配置代理

Ubuntu中为curl和Docker配置代理

在Ubuntu环境下工作时,经常需要使用代理来访问网络资源,尤其在网络受限或需要翻墙访问时。本文介绍如何分别为curl命令和Docker配置代理192.168.100.11:8000

一、curl命令代理配置

方法1:临时设置代理(仅当前命令有效)

直接使用--proxy参数:

sh 复制代码
curl --proxy http://192.168.100.11:8000 http://example.com

方法2:环境变量设置(影响当前终端会话)

设置临时环境变量,使当前会话中的所有curl请求使用代理:

sh 复制代码
export http_proxy="http://192.168.100.11:8000"
export https_proxy="http://192.168.100.11:8000"

# 验证
echo $http_proxy

curl http://example.com

方法3:永久配置(所有终端生效)

修改~/.bashrc~/.zshrc文件:

sh 复制代码
echo 'export http_proxy="http://192.168.100.11:8000"' >> ~/.bashrc
echo 'export https_proxy="http://192.168.100.11:8000"' >> ~/.bashrc
source ~/.bashrc

方法4:使用.curlrc单独配置

curl单独配置代理:

sh 复制代码
echo "proxy = http://192.168.100.11:8000" >> ~/.curlrc

二、Docker代理配置

Docker代理配置包括Docker守护进程(下载镜像等)、Docker客户端命令、以及容器内部网络访问。

1. 配置Docker守护进程

Docker下载镜像或构建镜像时可能需要代理:

  • 创建并编辑配置文件:
sh 复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
  • 添加内容:
ini 复制代码
[Service]
Environment="HTTP_PROXY=http://192.168.100.11:8000"
Environment="HTTPS_PROXY=http://192.168.100.11:8000"
Environment="NO_PROXY=localhost,127.0.0.1"
  • 重新加载并重启Docker:
sh 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证
systemctl show --property=Environment docker

2. 配置Docker客户端

影响Docker CLI命令(如docker builddocker pull):

  • 编辑配置文件:
sh 复制代码
mkdir -p ~/.docker
nano ~/.docker/config.json
  • 添加以下内容:
json 复制代码
{
  "proxies": {
    "default": {
      "httpProxy": "http://192.168.100.11:8000",
      "httpsProxy": "http://192.168.100.11:8000",
      "noProxy": "localhost,127.0.0.1"
    }
  }
}
  • 验证:
sh 复制代码
docker info | grep -i proxy

3. Docker容器内代理设置

容器默认不会继承宿主机的代理设置,有以下方式:

运行时临时指定:
sh 复制代码
docker run -e HTTP_PROXY="http://192.168.100.11:8000" \
           -e HTTPS_PROXY="http://192.168.100.11:8000" \
           -it ubuntu bash
Dockerfile内设置:
dockerfile 复制代码
ENV HTTP_PROXY="http://192.168.100.11:8000"
ENV HTTPS_PROXY="http://192.168.100.11:8000"
ENV NO_PROXY="localhost,127.0.0.1"
全局设置(Docker CLI配置)

同Docker客户端配置,所有新容器自动使用代理。

三、测试代理是否生效

运行容器进行验证:

sh 复制代码
docker run --rm -it ubuntu env | grep -i proxy

# 或

docker run --rm -it ubuntu curl -I http://example.com

成功返回内容或HTTP头即为配置成功。

总结

  • 临时设置:推荐给偶尔或单次使用。
  • 永久设置:适合长期工作场景,避免重复配置。
  • Docker守护进程代理:影响镜像下载,推荐配置。
  • Docker容器代理:影响容器内部网络,视情况需要配置。

参考链接

相关推荐
kymjs张涛9 分钟前
OpenClaw 学习小组:初识
android·linux·人工智能
程序设计实验室2 小时前
经历分享,发现挖矿木马后,服务器快速备份与重装(腾讯云平台)
linux
Miku164 小时前
OpenClaw-Linux+飞书官方Plugin安装指南
linux·人工智能·agent
Miku164 小时前
OpenClaw 接入 QQ Bot 完整实践指南
linux·人工智能·agent
Yogurt_cry9 小时前
[树莓派4B] 闲置近10年的爱普生 L310 打印机爆改无线打印机
linux·物联网·树莓派
Johny_Zhao1 天前
OpenClaw中级到高级教程
linux·人工智能·信息安全·kubernetes·云计算·yum源·系统运维·openclaw
Sheffield2 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield2 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽2 天前
win10下运行Start Broker and Proxy报错解决
docker