如何调试docker端口映射?

时间:2015-12-04 20:27:13

标签: docker

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

curl localhost

我已用* 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 标志显示该端口。我已经尝试过映射各种不同的端口以及什么不是骰子。 关于如何调试这个的任何想法?和/或端口映射的常见问题?

1 个答案:

答案 0 :(得分:2)

如果你在容器外面做curl - 它将无效。如果我理解正确,那么你有几种变体:

  1. 使用docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID命令 - 更多关于Docker Inspect

  2. 使用docker port $CONTAINER_NAME命令 - 更多关于Docker Port

  3. UPD#1

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