码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Docker】windows环境下的docker如何开放远程2375端口


    前言

    截止至文章发表时,DockerDesktop的最新版本为v4.11.1。本文以该版本为准。

    Docker在windows运行在Hyper-v的虚拟机中或者wsl windows子系统中。

    原因说明

    网上大部分的操作都无法解决远程访问的问题

    比如,在DockerDesktop的settings中勾选Expose daemon on tcp://localhost:2375 without TLS,也只是开启localhost/127.0.0.1端口2375的监听。这个是无法实现开启远程访问的

     再比如说,在上一步基础上,在Docker Engine添加。这里确实是可以监听任何ip的2375端口。按理来说是可行的,实际上却无法是实现远程访问的!

    "hosts": ["tcp://0.0.0.0:2375"]

    原因:别忘了文章前说的,windows环境下的Docker是运行在Hyper-v的虚拟机中或者是wsl windows子系统中,这些虚拟机和宿主机是NAT方式连接的,宿主机的物理网络和虚拟机网是不在同一子网中。

    因此在上面两步的基础上,还需要解决虚拟机和宿主机网络不在同一子网的问题。

    解决方案

    多方寻找,在IBM的某个产品文档里找到了一个方式,解决虚拟机与宿主机不在同一子网上时通过宿主机ip访问docker守护进程

    IBM DocumentationIBM Documentation.https://www.ibm.com/docs/en/addi/6.1.0?topic=prerequisites-configuring-docker-engine-listen-tcp-socket

     重点看截图红框框,对于使用DockerDesktop,需要在宿主机设置代理监听本地127.0.0.1:2375。

    因此,正确步骤就是

    1、在DockerDesktop的settings中勾选Expose daemon on tcp://localhost:2375 without TLS,点击“Apply & Restart”,重启DockerDesktop

    2、在CMD(管理员模式)中执行命令

    1. #替换 为 docker 主机的公共 IP 地址
    2. netsh interface portproxy add v4tov4 listenport=2375 listenaddress= connectaddress=127.0.0.1 connectport=2375

    就可以正确开放远程2375端口了

    宿主机使用本机ip可以访问,但其他机器访问宿主机ip不通,则需要在windows防火墙开放端口

    防火墙配置中,入站和出站都需要开放2375端口


    补充

    1、解决方案第2步设置代理无效或者windows重启后失效,需要检查IP Help服务正常运行,重启该服务即可。建议将其设为自动启动。

     

     

    2、解决方案第2步除了使用netsh命令添加代理,也可以在宿主机上使用nginx转发127.0.0.1:2375 

    1. # nginx配置文件nginx.conf添加如下配置
    2. stream {
    3. server {
    4. listen 2375;
    5. proxy_pass 127.0.0.1:2375;
    6. }
    7. }

    如何使用nginx转发,可以参考我的另一篇文章

    使用nginx进行端口转发_源林氏的博客-CSDN博客_nginx 端口转发# 编译nginx的时候要添加stream模块 ./configure –with-stream# 这个模块实现了网络层和传输层的的转发、代理、负载均衡等stream { # stream与http配置同级 server { listen 13306; proxy_pass 192.168.8.168:3306; # 有了这个server配置,你就可以通过跳板机ip+13306端口访问内网的mysql库了 } server { ......https://blog.csdn.net/ET1131429439/article/details/116045306

  • 相关阅读:
    Error注入攻击
    LabVIEW如何获取波形图上游标所在位置的数值
    Pytorch(二) —— 激活函数、损失函数及其梯度
    关于linux的一点好奇心(五):进程线程的创建
    (1)微服务是什么?它的优缺点有哪些?
    查题api对接
    git常用命令
    jquery操作DOM对象
    等保测评有那些流程?为什么要做等保
    review第1遍,220628,oozie工作流调度,数据质量监控,git,md+本地视频,
  • 原文地址:https://blog.csdn.net/ET1131429439/article/details/126541568
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号