use*_*875 73 containers docker docker-for-mac
我正在使用Docker for Mac,我在docker容器中运行基于nodejs的微服务.我想通过浏览器测试节点微服务.如何获取运行docker容器的IP地址?
Osc*_*vis 85
如果您不想将主机端口映射到容器,则可以直接访问容器的docker range ip.默认情况下,此范围仅从您的主机访问.您可以检查您的容器网络数据:
docker inspect <containerNameOrId>
Run Code Online (Sandbox Code Playgroud)
过滤可能更好:
docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1
Run Code Online (Sandbox Code Playgroud)
通常,默认的docker ip范围是172.17.0.0/16
.如果一切正常并且您没有指定任何特殊的网络选项,那么您的主机应该是172.17.0.1
您的第一个容器172.17.0.2
.
编辑 使用docker功能而不是"bash tricking"的另一种更优雅的方式:
docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>
Run Code Online (Sandbox Code Playgroud)
Nil*_*tel 14
使用--format选项仅获取IP地址而不是整个容器信息:
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>
Run Code Online (Sandbox Code Playgroud)
小智 10
对于现代docker引擎,请使用以下命令:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
Run Code Online (Sandbox Code Playgroud)
对于较旧的引擎,请使用:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
Run Code Online (Sandbox Code Playgroud)
如果你想在容器内获得它,你可以尝试
ip a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep 172.17
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用flag启动容器-P
。这会将随机端口“分配”到图像的裸露端口。
随着docker port <container id>
您可以看到随机选择的端口。然后可以通过访问localhost:port
。
归档时间: |
|
查看次数: |
145748 次 |
最近记录: |