通过代理把一台能上网的服务器代理给一台不能上网的服务器,通过配置,原本不能上网的服务器就能成功上网了~
1.进入虚拟机
2.进入到/etc/systemd/system目录下
3.进入docker.service.d
4.编辑http-proxy.conf
vi http-proxy.conf
5.根据个人情况把IP进行修改,修改后放进http-proxy.conf中
[Service] Environment="HTTP_PROXY=http://10.15.136.20:8080" Environment="HTTPS_PROXY=http://10.15.136.20:8080" Environment="NO_PROXY=10.28.149.171,10.28.148.61,localhost,127.0.0.1,.example.com"
释意如下:
这段代码是用于在 Linux 系统的 systemd 服务配置文件中设置环境变量的部分。系统的服务在启动时会继承这些环境变量,并在它们自己的环境中使用。这样可以在整个系统范围内的服务中保持一致的行为,而不必在每个单独的服务启动脚本中重复相同的配置。 以下是每一部分的解释:
1. Environment="HTTP_PROXY=[http://10.15.136.20:8080]" 这一行设置了一个环境变量 `HTTP_PROXY`,它的值是一个 HTTP 代理服务器地址 `http://10.15.136.20:8080`。当这个服务运行时,所有通过网络发送的 HTTP 请求都将首先经过这个代理服务器。
2. Environment="HTTPS_PROXY=[http://10.15.136.20:8080]" 类似于上面的 `HTTP_PROXY` 设置,这一行设置了 `HTTPS_PROXY` 环境变量,同样指向 `http://10.15.136.20:8080`。这意味着所有的 HTTPS 请求也将被重定向到此代理服务器。
3. Environment="NO_PROXY=[10.28.149.171], [10.28.148.61], localhost, [127.0.0.1], .,[example.com]" 这一行设置了一个 `NO_PROXY` 环境变量,列出了一些不需要通过代理的主机或域名列表。具体如下: - `[10.28.149.171]` 和 `[10.28.148.61]` 表示 IP 地址,表示这些机器上的通信无需代理。 - `localhost` 和 `[127.0.0.1]` 指本地回环地址,表示本地主机上的通信无需代理。 - `.` 指默认域,表示任何子域名也不需代理。 - `[example.com]` 表示名为 `example.com` 的域名及其所有子域也不需要通过代理。 因此,当这个服务运行时,对于不在 `NO_PROXY` 列表中的所有其他 URL,所有的 HTTP 和 HTTPS 请求都会通过预先指定的代理服务器 `http://10.15.136.20:8080` 发送,而对于列表中的 URL,则直接连接而不使用代理。这种设置常用于在企业网络中实现内网穿透、负载均衡或防火墙策略。
6.重新加载配置文件
systemctl deamon-reload
7.重启docker
systemctl restart docker
8. 确保docker状态开启
9.这时候就可以拉镜像了
docker pull 镜像名
10.查看我们拉取的镜像,已存在~