首页 > 解决方案 > 如何通过名称(而不是 IP)访问主机上的 Docker 容器?

问题描述

我想在 docker 容器中运行 MS SQL 服务器(docker 映像:microsoft/mssql-server-windows-developer)。在主机和容器上使用 Windows。之后,应该可以通过有用的名称从主机(使用 SQL Management Studio)访问数据库(以便可以重复使用指令)。但是,docker 会生成一个看似随机的 IP,这并没有那么有用,尤其是它在每次调用运行时都会重置。

所以,我想给容器一个可以从主机访问的主机名(例如,通过 SQL Management Studio)。我想在这里避免一个单纯的 IP,但如果没有更好的解决方案出现就足够了。

在 docker 中创建网络不起作用,因为此功能显然仅在 Linux 下受支持。

--network-alias 也失败了。

运行命令如下所示:

docker run -d -p 1433:1433 -e sa_password=1234qwerT -e ACCEPT_EULA=Y --name docker_sql microsoft/mssql-server-windows-developer

标签: windowsdocker

解决方案


根据 bluescores 的评论并偶然发现了这个相关问题,我尝试并验证了连接到localhost是可能的——因此实际上不需要为 container-sql-server 配置名称或配置其 IP。

对于其他应用程序,一般问题可能仍然存在,但对于我目前想要实现的目标,localhost 就足够了。


推荐阅读