docker - 如何配置 docker 以允许从其他计算机连接到容器?

标签 docker

我正在尝试在 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/

相关文章:

Docker 群 : deploy containers on Worker node

docker - 电子邮件在 Linux 容器中不起作用

java - 如何让 DropWizard JUnit 应用程序规则定义使用 docker 规则中的启动信息?

php - Composer (PHP) 如何融入 Docker 工作流程?

docker - k8s如何知道Pod内部进程的目标端口?

docker - 完成容器后,从容器中复制文件

node.js - Docker 无法从 package.json 文件安装依赖项

azure - Azure 存储模拟器的 Docker 镜像 - nginx 错误

docker 基础图像: how to upgrade

python - 运行 docker 时没有此类文件或目录