Docker 只监听 8080 端口

Docker listening only in port 8080

我尝试了 8080 端口:

docker run -d --name=myweb1 -p 8080:80 -v /var/www/vhosts/domain/httpdocs/myweb:/var/www/html nginx:1.11-alpine

但是当我改成8081时(例如):

docker run -d --name=myweb2 -p 8081:80 -v /var/www/vhosts/domain/httpdocs/myweb:/var/www/html nginx:1.11-alpine

没用。我试过只装一个或多个容器,反正都不行。

我在 Ubuntu 14.04 上安装了 Docker。

更新 首先,我尝试创建 2 个容器:1 个 nginx 和 1 个 apache:

docker run -d --name=myweb8080 -p 8080:80 -v /var/www/vhosts/domain/httpdocs/miweb:/var/www/html nginx:1.11-alpine
docker run -d --name=myweb8081 -p 8081:80 -v /var/www/vhosts/domain/httpdocs/miweb:/var/www/html php:apache

第一个(8080端口的nginx)工作正常。第二个(端口 8081 中的 apache)不起作用,错误为 ERR_CONNECTION_TIMED_OUT.

然后我停止了 nginx(端口 8080)和 运行 端口 8080 中的另一个 apache 容器:

docker run -d --name=myweb8080b -p 8080:80 -v /var/www/vhosts/domain/httpdocs/miweb:/var/www/html php:apache

这个也很好用。

我正在四处查看 tcp 和 tcp6,但我检查了容器,尽管有带 'netstat' 的 tcp6,但所有容器都有 tcp。我还发现 docker tcp6 也意味着 tcp。

有什么想法吗?

可能有一个应用程序使用了这个端口。请看下面的命令:

netstat -an | grep :8081

如果你有一个结果,这意味着,你有一个使用这个端口的应用程序。