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容器代理:影响容器内部网络,视情况需要配置。

参考链接

相关推荐
sanggou25 分钟前
Linux批量执行工具脚本使用指南:一键运行多个release-dev.sh脚本
linux·bash
乌鸦不像写字台4 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
牧以南歌〆5 小时前
在Ubuntu主机中修改ARM Linux开发板的根文件系统
linux·arm开发·驱动开发·ubuntu
夜月yeyue6 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
kfepiza6 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
艾伦_耶格宇7 小时前
【docker】-1 docker简介
运维·docker·容器
cuijiecheng20187 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
IvanCodes8 小时前
二、Docker安装部署教程
docker·容器
独行soc9 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
java龙王*10 小时前
开放端口,开通数据库连接权限,无法连接远程数据库 解决方案
linux