Mysql 如何获得Docker容器&x27;位于网桥网络中的windows主机的IP地址?
已在docker中使用以下方法创建网桥网络: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 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。将端口映射回主机系统应足以访问容器上运行的服务。