我目前正在学习 Docker(在 Windows 和 Linux 上使用它),有一件事我无法理解,我认为用一个例子来解释会更好。
我运行一个 MySQL 容器,公开端口,然后通过 MySQL 客户端(如 MySQL Workbench)连接到它。在 Linux/Ubuntu 上,我可以通过其 IP 地址连接到容器内运行的数据库,我通过运行以下命令获取该 IP 地址:
docker inspect CONTAINER_NAME
这对我来说非常有意义,这就是我连接到服务器上运行的数据库的方式。
然而,在 Windows 上,这种方法不起作用。我实际上必须连接到localhost
容器的 IP。我明白这与 Windows 上的容器在 Linux VM 内运行有关,但在这种情况下,我应该使用 VM 的 IP 地址来连接到它。
有人能向我解释一下为什么它会这样工作吗?我很难理解它(我还是个初级开发人员),我宁愿了解它的工作原理,而不是仅仅记住不同操作系统的命令/IP。