Npm 运行 在 Docker 容器中服务

Npm run serve in Docker container

刚学Docker.

我下载了 ubuntu 18.04 镜像文件。

nodejsnpm 安装在容器中。

我安装了所需的软件包后,npm install

使用npm run serve.

在mac的外网看不到localhost:8080。

我根据以下信息执行 Google 搜索。

It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/

但是我看到大家都在用docker文件。

因为刚学docker,对docker文件了解不多

希望进入容器后npm 运行 serve可以被外部访问,怎么办?

docker exec -it 858ba945a7386a7b318587ea35d903fb78b5bc6324d3bbc14c2969d7974ea44d /bin/bash 

你必须添加端口映射see docs

-p 8080:8080 将容器中的 TCP 端口 80 映射到 Docker 主机上的端口 8080。

第一

直接使用官方node:<version>图像,而不是ubuntu或其他S.O。图片。 最佳做法是修复一个版本。

节点图像包含节点、npm 和 S.O。环境。

第二

如果您使用 Docker Compose,在 docker-compose.yml 中,您必须映射 服务 的端口(至极包含 node 图片)像这样:

ports:
   - "8080:8080" 

第一个是您从浏览器调用的内容 (http://localhost:8080)。

(忽略最终单独的 nginx/webserver 容器)。

如果你直接使用 Docker 你 运行 命令加上 -p 选项,像这样:

docker run -p 8080:8080 <container>