外部无法访问Docker映射端口

时间:2020-06-12 20:50:34

标签: docker dockerfile nuxt.js

我正在跑步:

sudo docker run -d -p 9001:9001 --rm --name <cname> <img>

然后我通过localhost:9001进入浏览器,没有连接。

如果我跑步:

sudo docker run -d --network=host --rm --name <cname> <img>

我可以从浏览器通过localhost:9001访问该应用程序。

运行第一个命令,我可以通过运行以下命令来验证它在docker内部是否正常运行:

sudo docker exec <cname> wget localhost:9001返回预期的页面。

如果有用:运行的应用程序是标准的nuxt.js,它侦听端口9001,则用于生成映像的dockerfile是(在docker image build之前运行npm build)

FROM node:lts-alpine

WORKDIR /app/
COPY . /app/

EXPOSE 9001

ENTRYPOINT npm start

我正在使用的docker版本是19.03.8-ce。我该如何解决?

1 个答案:

答案 0 :(得分:1)

尝试不使用sudo运行docker。将docker与sudo一起使用不是一个好习惯,并且可能会引起很多麻烦。

要使用不带sudo的docker,您应按照官方文档中的说明将自己添加到“ docker”组。

要创建docker组并添加用户,请执行以下操作:

Create the docker group.

$ sudo groupadd docker

Add your user to the docker group.

$ sudo usermod -aG docker $USER

Log out and log back in so that your group membership is re-evaluated.

Docker post-install documentation