Mysql 如何获得Docker容器&x27;位于网桥网络中的windows主机的IP地址?

Mysql 如何获得Docker容器&x27;位于网桥网络中的windows主机的IP地址?,mysql,docker,Mysql,Docker,已在docker中使用以下方法创建网桥网络: docker network create blognetwork docker run --name=blogdb --network=blognetwork -p 3306:3306 -e --bind-address=0.0.0.0 -e=MYSQL_ROOT_PASSWORD=mypassword -detach mysql 并且在该网络中创建了具有以下内容的容器: docker network create blognetwork d

已在docker中使用以下方法创建网桥网络:

docker network create blognetwork
docker run --name=blogdb --network=blognetwork -p 3306:3306 -e --bind-address=0.0.0.0 -e=MYSQL_ROOT_PASSWORD=mypassword -detach mysql
并且在该网络中创建了具有以下内容的容器:

docker network create blognetwork
docker run --name=blogdb --network=blognetwork -p 3306:3306 -e --bind-address=0.0.0.0 -e=MYSQL_ROOT_PASSWORD=mypassword -detach mysql
如何从windows主机访问“blognetwork”中新容器的ip地址

如何单独获取表单X.X.X.X的ip地址?我知道我可以使用以下方法获得包含此数据的大型json输出:

docker network inspect blognetwork

下面是获取容器信息和容器IP的命令


docker inspect“ContainerID”

您可以使用docker inspect和适当的格式直接获取ip:

docker inspect containerId --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
自您运行以来,更多信息请参见

docker run -p 3306:3306 ...
docker run --name=blogdb --network=blognetwork ...
您应该使用主机的DNS名称或IP地址通过端口3306访问服务

在非常特定的情况下,如果您在运行
docker run
的计算机上看到shell提示符或浏览器URL条目,假设您没有使用docker machine或docker Toolbox,在这种情况下(仅在这种情况下),您可以使用
localhost:3306
访问容器。永远不要使用
localhost
处理Docker周围的任何其他内容,除非您完全清楚它的含义。(如果你开始写一个用“…的localhost of…”这个词的问题,那么localhost就不是你想要的。)

如果您试图从另一个容器访问此容器,因为您运行了

docker run -p 3306:3306 ...
docker run --name=blogdb --network=blognetwork ...
您可以使用名称
blogdb
作为主机名,Docker提供了一个内部DNS服务,可以将其解析为将到达容器的内容


您永远不需要Docker内部IP地址,也不应该运行
Docker inspect
来尝试查找它。它最大的两个问题是无法从非主机访问它,并且在删除和重新创建容器时会发生更改。

您可以使用docker inspect直接获取IP地址。Docker inspect提供有关Docker控制的构件的详细信息

现代Docker客户端语法为:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
旧Docker客户端语法为:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
这些命令将返回Docker容器的IP地址

如果您在Windows上,请在花括号周围使用双引号“而不是单引号”


有关详细信息。

您永远不需要Docker内部IP地址,也不应该运行Docker inspect来尝试查找该地址。+1。将端口映射回主机系统应足以访问容器上运行的服务。