当前位置:   article > 正文

简记:为Docker配置服务代理

简记:为Docker配置服务代理
简记
为Docker配置服务代理

- 文章信息 -
Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139562987
HuaWei:https://bbs.huaweicloud.com/blogs/428728

本文全在合规范围内进行讲解,不包含跨越不可抗力阻扰内容,主要为多数能够自行通过合法途径科学上网的技术人在特定环境下介绍配置Docker代理。

在这里插入图片描述


【介绍】:本文主要关于在一台windows上为另外Linux主机上Docker提供代理访问的相关步骤。

在这里插入图片描述


1. 背景描述

想必大陆地区很多免费镜像停服如上交Docker镜像,给很多自己在做Docker相关项目的小伙伴带来了一些没有必要的麻烦。其实我个人而言主要使用的还是官方源,不论是虚拟机还是物理机,主要是镜像更新全面和及时。

因此我想介绍在一个局域网内,使用一台主机作为代理服务,其它主机通过这个服务访问外网,进而配置Docker代理的步骤。

本文全在合规范围内进行讲解,不包含跨越不可抗力阻扰内容,主要为多数能够自行通过合法途径科学上网的技术人在特定环境下介绍配置Docker代理。

这里一个具体背景描述如下:

我有一个外网服务器可惜之只能运行于Windows/Mac系统上,但是目前我希望在另外一台同网段Linux主机上通过代理访问外网流量。现在需要做的事情如下:

在Windows主机上,假设设置外网服务监听的是7890端口,但是默认情况下,它仅仅针对于当前主机有效,也就是说,外网服务监听的是本地。

在其它的所有同一网络的Liniux主机上,通过这台Windows的代理服务访问外网,进而使用Docker官方源。

2. 代理服务端主机的操作

2.1 开启代理监听

这个部分不需要讲解,一般看文章的人都是高手。

2.2 暂时关闭防火墙

确保Windows防火墙已经关闭。可以临时禁用防火墙来进行测试:

netsh advfirewall set allprofiles state off
  • 1

后续停用时请记得重新启用防火墙:

netsh advfirewall set allprofiles state on
  • 1

3. Linix上使用代理

你可以依据自己的需要选择一种方式。

3.1 proxychains代理方式

要在同网段的Ubuntu主机上使用Windows主机上的VPN代理,你可以按照以下步骤进行配置:

  1. 确保Windows主机上的Clash和Nginx都已经正确配置并启动,并且Windows防火墙允许其他主机访问Nginx监听的端口(如7890)。

  2. 在Ubuntu主机上,打开终端。

  3. 安装proxychains,它是一个命令行工具,可以让任何程序通过代理运行。可以使用以下命令安装:

sudo apt update
sudo apt install proxychains
  • 1
  • 2
  1. 配置proxychains。打开proxychains的配置文件:
sudo vim /etc/proxychains.conf
  • 1
  1. 在配置文件的末尾,按照下面的格式编写添加代理:
http 服务端主机IP VPN服务端口号
  • 1

这里你应该修改为你自己启用的服务端IP和端口号,比如:

http 192.168.31.6 7890
  • 1
  1. 保存文件并退出编辑器。

  2. 现在,可以通过在命令前加上proxychains来使任何命令通过代理运行。例如:

proxychains curl https://www.google.com
  • 1

这将通过代理访问Google。

3.2 全局代理方式

如果你想让整个系统都使用代理,可以设置环境变量http_proxyhttps_proxy

export http_proxy=http://服务端主机IP:VPN服务端口号
export https_proxy=http://服务端主机IP:VPN服务端口号
  • 1
  • 2

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890
  • 1
  • 2

然后在远程到外网的服务端(我这里为:192.168.31.236的一台主机),在客户端主机上,测试服务端主机``

curl --proxy http://192.168.31.6:7890 https://www.google.com
  • 1

在这里插入图片描述

3.3 永久全局代理方式

有些场景下,为了避免每次都手动设置环境变量,你可以将这些环境变量添加到你的shell配置文件中(如~/.bashrc~/.bash_profile),这样每次启动终端时都会自动加载这些设置。

vim  ~/.bashrc
  • 1

然后在文件末尾添加以下行:

export http_proxy=http://服务端主机IP:VPN服务端口号
export https_proxy=http://服务端主机IP:VPN服务端口号
  • 1
  • 2

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890
  • 1
  • 2

保存并退出编辑器,然后使更改生效:

source ~/.bashrc
  • 1

4. 为Docker使用代理

4.1 为什么

在内地网络环境中,直接访问外网可能会受到限制或速度较慢。通过配置代理服务器,可以绕过这些限制并加速访问外网资源。对于Docker来说,配置代理服务器可以显著提高拉取镜像的速度,特别是在需要频繁拉取和更新镜像的开发和测试环境中。

4.2 操作步骤

4.2.1 创建Docker配置文件(如果不存在)

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
  • 1
  • 2

4.2.2 添加代理设置

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
  • 1

在配置文件中,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://服务端主机IP:VPN服务端口号"
Environment="HTTPS_PROXY=http://服务端主机IP:VPN服务端口号"
Environment="NO_PROXY=localhost,127.0.0.1"
  • 1
  • 2
  • 3
  • 4

例如:

[Service]
Environment="HTTP_PROXY=http://192.168.31.6:7890"
Environment="HTTPS_PROXY=http://192.168.31.6:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
  • 1
  • 2
  • 3
  • 4

这里我使用的依然是192.168.31.6和端口7890。请将http://192.168.31.6:7890替换为你实际的代理服务器地址和端口。

NO_PROXY环境变量指定了不应该通过代理访问的主机或域名,通常包括本地主机和回环地址。

4.2.3 重新加载Docker服务配置并重启Docker

  1. 重新加载Docker服务配置:
sudo systemctl daemon-reload
  • 1
  1. 重启Docker服务:
sudo systemctl restart docker
  • 1

5. 检查与测试效果

你可以使用docker info验证代理设置是否生效:

docker info
  • 1

你可以在输出中看到这个格式:

HTTP Proxy: http://服务端主机IP:VPN服务端口号
HTTPS Proxy: http://服务端主机IP:VPN服务端口号
  • 1
  • 2

比如:

HTTP Proxy: http://192.168.31.6:7890
HTTPS Proxy: http://192.168.31.6:7890
  • 1
  • 2

如图所示:
在这里插入图片描述

现在我们可以试试拉取官方镜像看看是否很快拉取成功:

在这里插入图片描述
可见瞬间就成功拉取了,说明通过代理成功。

最后停用时,请记得在Windows主机侧重新启用防火墙:

netsh advfirewall set allprofiles state on
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/710088
推荐阅读
相关标签
  

闽ICP备14008679号