【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(管理员模式)中执行命令
#替换 <your_IP>为 docker 主机的公共 IP 地址
netsh interface portproxy add v4tov4 listenport=2375 listenaddress=<your_IP> 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
# nginx配置文件nginx.conf添加如下配置
stream {server {listen 2375;proxy_pass 127.0.0.1:2375;}
}
如何使用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
【Docker】windows环境下的docker如何开放远程2375端口相关推荐
- ubuntu mysql 多端口_ubuntu 16.04下mysql5.7.17开放远程3306端口
开启MySQL的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言, ...
- Windows环境下使用Docker安装MySQL
环境: win10, Docker Desktop 1. 查看仓库可用MySQL版本 docker search mysql 2. 拉取mysql镜像 // 拉取最新版本 docker pull m ...
- windows环境下进入docker虚拟机的方式
今天在docker的简易应用栈搭建的过程中,遇到一个问题,就是查看一个容器的存储卷挂在本地,发现进不去,原因是:我的环境docker是装在win10上的一个虚拟机上,我直接在power shell的命 ...
- ubuntu mysql 修改 端口_在Ubuntu/Linux环境下使用MySQL:开放/修改3306端口、开放访问权限...
操作系统:Ubuntu 17.04 64位 MySQL版本:MySQL 5.7 一.查看3306端口是否开放 netstat -an|grep 3306 如果看到下图这样的,说明端口并未打开: 二.修 ...
- 【网址收藏】win10环境下安装Docker、Windows安装docker
一.进入Docker官网 首先先到Docker官网下载最新官方Docker for Windows:Docker下载 在官网内可以查看到Docker的开发文档. 根据官网提示,Windows环境下下载 ...
- Windows环境下,如何在Docker里运行SAP UI5应用
本文面向的读者是对Docker技术有一些基本概念,但因为没有测试环境,所以没有动手操作过的朋友们. 最近Jerry因为要做一个新的SAP云产品开发,得搭各种开发环境,其中之一就是Docker. Jer ...
- Docker容器环境下ASP.NET Core Web API应用程序的调试
本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...
- Windows家庭版下基于Docker的hadoop、Spark集群搭建
Windows家庭版下基于Docker的hadoop.Spark集群搭建 目录 Windows家庭版下基于Docker的hadoop.Spark集群搭建 1.实验目的 2.实验平台 3.实验内容和要求 ...
- 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)
文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...
最新文章
- docker容器互联
- Ajax处理函数模板
- Azure DevOps 中 Dapr项目自动部署流程实践
- 使用 ConfigMap 挂载配置文件
- 使用Junit测试名称
- 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》
- 我在Google用AI研究基因,入门从吴恩达的课程开始
- 2021年河南省高考成绩啥时候查询,2021年河南高考成绩什么时候出来,今天几点钟出成绩可以查询...
- android模糊搜索文件,模糊搜索_八门神器教程|安卓八门神器怎么用图文教程__单机攻略_跑跑车单机游戏网...
- FPGA-Verilog实例----线性反馈移位寄存器(LFSR)
- cocos2dx3.0关于实现椭圆运动
- JavaScript-162:表格隔行变色
- TCP的四次挥手为什么需要2MSL ?
- JVM学习笔记(13) 垃圾回收-相关概念
- 网页版红警的资源加载的实现
- 年月日时间和64位时间的使用及相互转换
- 拼多多商家如何运营好店铺?商家如何一键打单?
- 详解SSD可靠性影响因素、原理和解决方法
- slam初学(一)——Kdevelop的安装及汉化
- mysql的一些介绍
热门文章
- PropertyDescriptor 获取属性名称“aProp“ 为“AProp“问题分析
- 搜狗输入法打不出汉字解决方案
- Python中的文件处理
- plt 在屏幕的固定位置显示图像
- 第一代计算机的cpu是什么型号,电脑CPU一般有几种型号?
- 有哪些好用的视频剪辑工具?这五种编辑方法很好用
- ASP用替换函数给文章内容所有图片加上alt属性内容
- 【BX学习之支付流程】收银机的支付流程手记
- 腾讯位置服务地图选点组件使用示例
- 移动云mas-sdk方式发送短信