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

参考链接

相关推荐
爱和冰阔落21 小时前
【Linux】两个毫无关系的进程怎么通信?命名管道 FIFO 从原理到 Server/Client 实战
android·linux·数据库·c++·vim
ltl21 小时前
Windows 内核与 Linux 的关键差异
linux
ltl21 小时前
CentOS 停服与生态重组:Rocky、Alma、openEuler、龙蜥
linux
Anesthesia丶1 天前
PromoxVE安装笔记
笔记·ubuntu·server·promox
ltl1 天前
eBPF 可观测性全景:bcc、bpftrace、libbpf 的工程路径
linux
2401_868534781 天前
数仓开发落地手册
linux·运维
正在走向自律1 天前
使用atop工具监控Linux系统指标
linux·运维·php·实时监控·atop分析内存
果果燕1 天前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
yyy(十一月限定版)1 天前
017【入门】最小栈
linux·运维·服务器
不负岁月无痕1 天前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试