docker网络代理

一、前提:

docker 官方镜像无法直接访问的,解决方法有两个,第一个是使用国内加速镜像,第二个是使用网络代理,不知道是不是我用的wsl有啥问题,使用国内加速镜像一直访问不了,所以只能采用第二种方式了。
如果读者也是使用wsl环境的话,可能需要先设置一下,再看后面的内容:
wsl使用代理网络

二、设置

1.创建配置 和设置参数

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
## 然后填写代理配置
[Service]
Environment="HTTP_PROXY=http://你的代理服务器地址:端口/"
Environment="HTTPS_PROXY=http://你的代理服务器地址:端口/"
Environment="NO_PROXY=localhost,127.0.0.1,*.test.example.com,.example2.com"

注意:如果是wsl环境的话填写wsl宿主机的ip端口号,有啥填啥
2. 重启生效:

sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 检验是否成功:
# 查看代理参数
sudo systemctl show --property=Environment docker
# 拉去镜像。
 docker pull hello-world

在这里插入图片描述

三、扩展:

第二步设置是在bash-docker层面用来访问官方镜像的,容器运行程序本身也可以设置代理从而访问:

3.1 全局设置

sudo mkdir -p .docker/config.json 
sudo mkdir vim .docker/config.json 

填入参数:

{
  "proxies": {
    "default": {
      "httpProxy": "http://你的代理服务器地址:端口",
      "httpsProxy": "http://你的代理服务器地址:端口",
      "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
    }
  }
}

保存后,之后创建的新容器会自动应用这些代理设置。

3.1 单容器设置

3.1.1docker 编写的时候直接指定环境变量

docker run -d --name my_container \
  --env HTTP_PROXY="http://你的代理服务器地址:端口/" \
  --env HTTPS_PROXY="http://你的代理服务器地址:端口/" \
  --env NO_PROXY="localhost,127.0.0.1" \
  你的镜像名称

3.1.2 加速镜像
有些时候可能也不需要网络代理,个人感觉能用加速镜像就用加速镜像,比如go 加速镜像

docker run -d --name my_container \
  --env GOPROXY=https://goproxy.cn,direct\
  你的镜像名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值