如何将容器上的端口映射到主机?

How do I map a port on a container to the host?

我正在尝试 运行 由以下 Dockerfile 描述的容器:

FROM node:11.4.0

RUN npm install -g sh
RUN npm install -g json-server

WORKDIR /data
VOLUME /data
COPY db.json /data

CMD json-server --watch db.json --port 3001

并通过运行ning指定监听端口:

 docker run -it -p 3001:3001 abelalejandro/json-server:final

容器似乎 运行 正常,json-服务器告诉我它正在为我在端口 3001 上的请求提供服务,但我在浏览时无法获得任何乐趣 http://localhost:3001

我是否在 publishing/exposing 端口上遗漏了什么?

它绑定到 localhost 而不是 0.0.0.0(任何主机)。

您可以通过设置更改它:

CMD json-server --watch db.json --host 0.0.0.0 --port 3001

我假设您正在使用 https://github.com/typicode/json-server