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

参考链接

相关推荐
ShineWinsu9 小时前
对于Linux:动静态库的制作与原理的解析—下
linux·运维·服务器·进程·链接·虚拟地址空间·
RH23121110 小时前
2026.4.16Linux 管道
java·linux·服务器
aq553560010 小时前
Laravel5.X核心特性全解析
ubuntu·debian
handler0110 小时前
Linux: 基本指令知识点(2)
linux·服务器·c语言·c++·笔记·学习
liuyukuan11 小时前
如何在win11上打开 WSL2(Windows 的 Linux 子系统)?
linux·windows
橙子也要努力变强11 小时前
Linux信号机制
linux·服务器·网络
shughui11 小时前
FinalShell / Xshell 完整教程(下载+安装+使用,2026最新版)
linux·fiddler·xshell·xftp·finalshell·远程连接工具
wydd99_lll11 小时前
docker特权模式下逃逸
运维·docker·容器
程序猿编码11 小时前
给你的网络流量穿件“隐形衣“:手把手教你用对称加密打造透明安全隧道
linux·开发语言·网络·安全·linux内核
pengyi87101512 小时前
私网IP映射公网基础原理,搭配代理IP远程访问入门
linux·服务器·网络