Nginx容器已停止,但仍显示在浏览器中

时间:2020-03-31 19:05:07

标签: docker nginx

我将一个docker容器发布到了端口'3000',当转到网络浏览器的“ localhost:3000”时,它表明nginx正在工作,但是在我停止并杀死该容器之后,它仍然显示在我的浏览器中,甚至你不应该 注意:我删除了浏览器的所有缓存,Cookie和浏览器历史记录,但仍然显示

1 个答案:

答案 0 :(得分:1)

您是否正在使用Linux作为主机操作系统?

Docker容器进程是Linux进程。

一种通用的机制来确定哪个进程正在使用哪个端口,例如:

ss --tcp --listening --processes | grep 3000

更好:

ss --tcp --listening --processes '( src = :3000 )'

注意事项:您可能需要以sudo的身份运行以上命令,以使进程在root用户下运行。

让我来再现您的问题:

docker run --interactive --tty --publish=3000:80 nginx

然后:

sudo ss --tcp --listening --processes '( src = :3000 )'
State    Local    Peer
LISTEN   *:3000   *:*             users:(("docker-proxy",pid=21308,fd=4))

ps aux | grep 21308
21308 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-port 80

NB 对上面的内容进行了大量编辑以传达要点。

希望您能看到进程21308是端口:3000上的进程

这是与docker-proxy相对应的进程,并且按照该进程,它将主机的:3000映射到容器端口:80

由于您知道(预期)该过程将成为Docker容器,因此您可以:

docker container ls --all
CONTAINER ID  IMAGE  COMMAND                  PORTS
197ee6d0ab00  nginx  "nginx -g 'daemon of…"   0.0.0.0:3000->80/tcp

您可以看到主机的:3000中有一个端口映射(正在使用)。