我正在尝试在 Linux docker 容器中的 Mac 上运行带有 MS SQL Server 的小型测试服务器。也许我的术语有误,所以如有必要请纠正我:
host - 安装了 docker 的 macOS 桌面(ip 10.0.1.73)
容器 - 在 docker 容器中运行的 Linux 实例,其中运行 SQL Server
远程桌面 - 局域网上的另一台计算机尝试连接到 SQL Server
我按照 MS 安装说明进行操作,一切似乎都运行良好,除了我无法从远程桌面连接到 SQL Server
我可以连接到 docker 主机(10.0.1.73)并且可以 ping 通 IP 地址
我可以从 docker 主机连接到 SQL Server 并查看数据库等。
我使用以下命令创建 docker 容器
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<XXXXXX>" -p 1433:1433 --name sqlserver1 -d microsoft/mssql-server-linux:2017-latest
认为
-p 1433:1433
将 linux 端口映射到 macOS 主机端口,并允许远程计算机在从局域网连接到 macOS 主机上的该端口时访问 docker 容器这不起作用,我认为这可能与 macOS 主机上的网络路由有关
我见过的大多数解决方案似乎都表明应该使用 VirtualBox UI 来修改网络设置 - 但我没有安装
其他的似乎有几页和几页需要的命令行指令
在我错过的地方有一个简单的解决方案吗?
编辑:
进行了更多研究,我发现了有关默认情况下如何为单主机网络设置 Docker 网络的解释。对其他在 Docker 概念上苦苦挣扎的人来说,这是一个很好的解释。
关于 docker 容器和虚拟机之间的区别也值得一读......
https://youtu.be/Js_140tDlVI
仍在尝试找到有关多主机网络的一些解释。
最佳答案
尝试禁用要连接的主机上的防火墙。
端口 1433 将被转发到 docker 容器,但您的主机 (MAC) 应该打开端口 1433 才能连接到您的主机。
关于docker - 如何配置 docker 以允许从其他计算机连接到容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746220/