Docker代理配置问题解决方案
Docker代理配置问题解决方案
Docker 的客户端-服务端分离
Docker 由两部分组成:
docker 客户端(你执行的命令)
dockerd 守护进程(实际执行网络操作的后台服务)
1. 配置 Docker 系统级代理
创建代理配置文件
bash# 创建配置目录 sudo mkdir -p /etc/systemd/system/docker.service.d # 创建代理配置文件 sudo nano /etc/systemd/system/docker.service.d/proxy.conf添加代理内容
将端口换成自己v2ray对应的端口
NO_PROXY用于排除本地地址,避免代理循环
text[Service] Environment="HTTP_PROXY=http://127.0.0.1:8123/" Environment="HTTPS_PROXY=http://127.0.0.1:8123/" Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com"应用配置并重启 Docker
bash# 重新加载 systemd 配置 sudo systemctl daemon-reload # 重启 Docker 服务 sudo systemctl restart docker # 检查服务状态(确保无报错) sudo systemctl status docker验证代理配置
bash# 查看 Docker 环境变量 sudo systemctl show docker --property=Environment # 测试 Docker Hub 访问 docker search mysql # 查看 Docker 日志(排查错误) journalctl -u docker -n 50 --no-pager
2. v2ray开启http代理
在配置文件中inbounds中加入以下,开启http代理
bash
{
"tag": "http",
"port": 10808,
"listen": "127.0.0.1",
"protocol": "http",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
],
"routeOnly": false
},
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
}
}