简记:为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

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

netsh advfirewall set allprofiles state on

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. 配置proxychains。打开proxychains的配置文件:
sudo vim /etc/proxychains.conf
  1. 在配置文件的末尾,按照下面的格式编写添加代理:
http 服务端主机IP VPN服务端口号

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

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

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

proxychains curl https://www.google.com

这将通过代理访问Google。

3.2 全局代理方式

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

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

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890

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

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

在这里插入图片描述

3.3 永久全局代理方式

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

vim  ~/.bashrc

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

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

例如:

export http_proxy=http://192.168.31.6:7890
export https_proxy=http://192.168.31.6:7890

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

source ~/.bashrc

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

4.2.2 添加代理设置

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

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

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

例如:

[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"

这里我使用的依然是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. 重启Docker服务:
sudo systemctl restart docker

5. 检查与测试效果

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

docker info

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

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

比如:

HTTP Proxy: http://192.168.31.6:7890
HTTPS Proxy: http://192.168.31.6:7890

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

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

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

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

netsh advfirewall set allprofiles state on

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/695177.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NLP实战入门——文本分类任务(TextRNN,TextCNN,TextRNN_Att,TextRCNN,FastText,DPCNN,BERT,ERNIE)

本文参考自https://github.com/649453932/Chinese-Text-Classification-Pytorch?tabreadme-ov-file,https://github.com/leerumor/nlp_tutorial?tabreadme-ov-file,https://zhuanlan.zhihu.com/p/73176084,是为了进行NLP的一些典型模型的总…

论文阅读——MIRNet

项目地址: GitHub - swz30/MIRNet: [ECCV 2020] Learning Enriched Features for Real Image Restoration and Enhancement. SOTA results for image denoising, super-resolution, and image enhancement.GitHub - soumik12345/MIRNet: Tensorflow implementation…

idea打开hierarchy面板

hierarchy:查看类层级关系图 不同版本的IDEA的快捷键不一样,同时如果修改了IDEA快捷键,也可能会不一样,具体查看可通过IDEA上方的Navigate来查看navigate--Type Hierarchy,就可以看见其快捷键了,我的快捷键…

简单记录玩4399游戏flash插件问题

一、因谷歌浏览器默认禁止flash插件自动运行,所以玩家在使用谷歌浏览器,访问www.4399.com平台页面或者4399小游戏(flash资源)时,可能会出现加载异常的情况。今天教大家如何开启flash插件 二、下载falsh官方插件 地址:Flash Player官方下载中心-Flash中国官网 三、如果您…

【IoT NTN】3GPP R18中关于各类IoT设备在NTN中的增强和扩展

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

动态路由协议RIP(思科、华为)

#交换设备 动态路由协议RIP 路由协议 静态路由 需要管理员手动配置 动态路由 是在路由器上启用某动态路由协议,进行自己直连网段的宣告,从而相邻的路由器就可以学习的相邻的路由器所宣告的网段,每一台路由器都把自己直连的网段宣告出去&am…

LINUX网络FTP服务

一、FTP服务 FTP服务:file transfer protocol :文件传输协议。在网络上进行双向传输,也是一个应用程序。不同的操作系统有不同的FTP软件,但使用的协议是一样的。 FTP协议基于TCP协议,有两个端口,即20和21。 20端口&…

《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。

《大道平渊》 拾壹 "大家都在喝,你喝不喝?" 商业一定是个故事,人民群众需要故事。 比如可口可乐的各种故事。 可口可乐公司也只是被营销大师们, 作为一种故事载体,发挥他们的本领。 营销大师们开发故事…

《精通ChatGPT:从入门到大师的Prompt指南》第11章:Prompt与AI的未来

第11章:Prompt与AI的未来 11.1 技术发展的新方向 在迅速发展的人工智能领域,Prompt工程作为与AI模型交互的核心方式,正处于技术创新的前沿。未来几年,Prompt工程将沿着多个新方向发展,这些方向不仅会改变我们与AI互动…

SOA的设计模式_2.企业服务总线模式

1.企业服务总线(|Enterprise Service Bus,ESB) 在企业基于SOA实施EAI、B2B和BMP的过程中,如果采用点对点的集成方式存在着复杂度高,可管理性差,复用度差和系统脆弱等问题。企业服务总线(…

(南京观海微电子)——温度对TFT影响及改善方式

温度如何损坏 LCD? 这个工作温度范围会影响设备内的电子部分,超出范围会导致 LCD 技术在高温下过热或在寒冷时变慢。 至于液晶层,如果放在高温下,它会变质,导致它和显示器本身出现缺陷。 LCD 温度限制: 什…

架构设计-加密解决的基本工具方法

软件工程实施过程中,经常会用到加密解密相关的工具类,整理如下: import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;import javax.crypto.Cipher; import java.security.*; import java.security.interfaces.RSAPrivateKey; imp…

开发做前端好还是后端好?

目录 一、引言 二、两者的对比分析 技能要求和专业知识: 职责和工作内容: 项目类型和应用领域: 就业前景和市场需求: 三、技能转换和跨领域工作 评估当前技能: 确定目标领域: 掌握相关框架和库&a…

Vue3【十三】watch监视

Vue3【十三】watch监视 Vue3 中的watch祝你能监视以下四种数据 ref 定义的数据reactive定义的数据函数返回一个值一个包含上述内容的数组 案例截图 目录结构 案例代码 Person.vue <template><div class"person"><!-- <h1>Watch情况1&#xff…

Channels无法使用ASGI问题

Django Channels是一个基于Django的扩展, 用于处理WebSockets, 长轮询和触发器事件等实时应用程序. 它允许Django处理异步请求, 并提供了与其他WebSockets库集成的功能.当我们在Django Channels中使用ASGI_APPLICATION设置时, 我们可以指定一个新的ASGI应用程序来处理ASGI请求.…

Transformer动画讲解:Softmax函数

暑期实习基本结束了&#xff0c;校招即将开启。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。提前准备才是完全之策。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c…

数据结构之线性表(1)

数据结构之线性表 1.线性表的定义 线性表是一种线性结构。在一个线性表中数据元素的类型是相同的&#xff0c;或者说线性表是由同一类型的数据元素构成的线性结构。 线性表是具有相同数据类型的n&#xff08;n>0&#xff09;个数据元素的有限序列。 n表示表长&#xff0c;…

45.django - 开始建立第一个项目

1.django是什么&#xff1f; Django是一个高级的、免费的、开源的Web应用框架&#xff0c;它由Python编程语言编写而成。Django遵循模型-视图-控制器&#xff08;MVC&#xff09;的设计模式&#xff0c;但通常将其称为模型-视图-模板&#xff08;MVT&#xff09;架构。它的主要…

数据交换平台_10_activatemq 中间件容错性测试

目录概要 3. 容错测试: - 模拟ActiveMQ在异常情况下的表现,如网络中断、节点故障等。 - 观察ActiveMQ的容错机制是否能够正确处理异常情况,保证消息的可靠传输。 - 根据容错测试结果,优化ActiveMQ的容错机制,确保系统在面对异常情况时能够正确处理并恢复。 设计: 容错测…

python实现将excel数据指保存到word表格中

准备一个excel表格 上代码&#xff1a; import openpyxl from docx import Document# 读取Excel文件 excel_file 大学名次.xlsx wb openpyxl.load_workbook(excel_file) ws wb.active# 获取Excel文件中的所有工作表名称 sheet_names wb.sheetnames# 遍历每个工作表&#x…