我正在使用nginx:alpine
Docker映像,像这样运行它:
c@makina ~> docker run -itp 8000:80 nginx:alpine
端口在 lsof 中显示为侦听:
c@makina ~> sudo lsof -i :8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 3653 root 4u IPv4 2025067 0t0 TCP *:8000 (LISTEN)
但是,在尝试访问它时,我收到连接超时:
c@makina ~> http :8000
http: error: Request timed out (30s).
但是,使用指向nginx容器的链接启动另一个容器可以让我访问它:
c@makina ~> docker run -it --link ${CONTAINER_ID}:nginx alpine:3.6 /bin/sh
/ # curl -s -D - -o /dev/null http://nginx/
HTTP/1.1 200 OK
...
docker0 网桥(以及 br-* 网桥和 veth* 接口(在主机上启动,lo 和 eth0 都在 nginx 容器中启动。
主机上的防火墙已禁用:
root@makina /h/c# service iptables status
* status: stopped
有什么想法吗?
我发现问题是环回接口没有启动。将其添加到/etc/network/interfaces
并运行ifup lo
解决了该问题。