如何调试docker端口映射?

dig*_*tie 5 port docker

我一直坚持让端口映射与我构建的 Docker 实例一起使用。curl localhost在 docker 容器中显示应用程序工作正常,但来自主机的curl 返回:

* Rebuilt URL to: 127.0.0.1/
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 127.0.0.1
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host 127.0.0.1 left intact
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)

我已经用标志暴露了端口-p。我尝试过映射各种不同的端口。我该如何调试这个?端口映射有哪些常见问题?

Yur*_*uri 5

如果你在curl容器之外做 - 它不会起作用。如果我理解正确的话,那么你有几种变体:

  1. 在Docker Inspect上使用 command docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID- more 。

  2. 在Docker Port上使用 command docker port $CONTAINER_NAME-more 。

执行命令docker inspect -f '{{ .NetworkSettings.IPAddress }}' <CONTAINER_NAME>。它应该显示您的内部 IP 地址,然后尝试curl <IP_FROM_COMMAND>:<PORT>