首页 > 解决方案 > 如何配置 docker 以允许从其他计算机连接到容器?

问题描述

我正在尝试在 Linux docker 容器中的 Mac 上运行带有 MS SQL Server 的小型测试服务器。也许我的术语有误,所以如有必要请纠正我:

host - 安装了 docker 的 macOS 桌面(ip 10.0.1.73)

container - 在 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

仍在尝试找到有关多主机网络的一些解释。

标签: docker

解决方案


尝试禁用要连接的主机上的防火墙。

端口 1433 将被转发到 docker 容器,但您的主机 (MAC) 应该打开端口 1433 才能连接到您的主机。


推荐阅读