码农知识堂 - 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

  • 相关阅读:
    大数据HBASE的详细使用
    记录vue配置跨域不起作用以及一些理解
    好的摄影师都会iPhone 8和iOS 11的这三项功能
    Web5到底是什么?Web4去哪了?
    搭建vue3项目并git管理
    vue--2.方法、事件绑定、样式绑定、条件渲染和循环渲染
    nginx + tomcat 搭建负载均衡、动静分离(tomcat多实例)
    linux上的代码在windows上运行
    CFCA证书 申请 流程(一)
    免费翻译软件哪个好用
  • 原文地址:https://blog.csdn.net/ET1131429439/article/details/126541568
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号