Docker 撰写端口问题。无法在本地主机上启动 docker 项目
Docker Compose port issue. Cannot launch docker project on localhost
我在 mac(El Capitan,稳定版,10.11.6
)和 Docker 桌面 Mac 稳定版安装。
我正在运行在官方节点图像上安装一个简单的javascript 应用程序。这是 Dockerfile
的样子:
FROM node
WORKDIR /usr/local/src
这里是 docker-compose.yml
:
version: '2'
services:
web:
container_name: myproject_dev
build: .
command: npm run development
ports:
- "1234:8000"
- "1235:8080"
- "80:80"
volumes:
- ./my-project:/usr/local/src
运行 docker-compose up
一切正常启动:
myproject_dev | http://localhost:8080/webpack-dev-server/
myproject_dev | webpack result is served from /assets/
myproject_dev | content is served from /usr/local/src
并且docker ps
表明端口被映射:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
820694f618b4 myproject_web "npm run development" 20 minutes ago Up 20 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:1234->8000/tcp, 0.0.0.0:1235->8080/tcp myproject_dev
但我无法在浏览器上看到项目页面(使用 localhost:1234
)。当我 运行 docker 之外的项目时工作正常。因此,排除了项目的问题。
尝试了以下方法:
- 使用不同的
node
docker
- 在 docker 测试版和稳定版之间切换
- 停止所有主机 apache/nginx 服务
但运气不好:(我在这里错过了什么?
Ping 不能那样工作;它查询主机,而不是该主机的端口。要测试您连接到给定主机上给定端口的能力,您可能需要类似 nc -vz <host> <port>
.
的东西
您运行 的服务只监听容器localhost
接口,因此容器外的任何东西都无法访问它。它需要监听 0.0.0.0
.
我在 mac(El Capitan,稳定版,10.11.6
)和 Docker 桌面 Mac 稳定版安装。
我正在运行在官方节点图像上安装一个简单的javascript 应用程序。这是 Dockerfile
的样子:
FROM node
WORKDIR /usr/local/src
这里是 docker-compose.yml
:
version: '2'
services:
web:
container_name: myproject_dev
build: .
command: npm run development
ports:
- "1234:8000"
- "1235:8080"
- "80:80"
volumes:
- ./my-project:/usr/local/src
运行 docker-compose up
一切正常启动:
myproject_dev | http://localhost:8080/webpack-dev-server/
myproject_dev | webpack result is served from /assets/
myproject_dev | content is served from /usr/local/src
并且docker ps
表明端口被映射:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
820694f618b4 myproject_web "npm run development" 20 minutes ago Up 20 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:1234->8000/tcp, 0.0.0.0:1235->8080/tcp myproject_dev
但我无法在浏览器上看到项目页面(使用 localhost:1234
)。当我 运行 docker 之外的项目时工作正常。因此,排除了项目的问题。
尝试了以下方法:
- 使用不同的
node
docker - 在 docker 测试版和稳定版之间切换
- 停止所有主机 apache/nginx 服务
但运气不好:(我在这里错过了什么?
Ping 不能那样工作;它查询主机,而不是该主机的端口。要测试您连接到给定主机上给定端口的能力,您可能需要类似 nc -vz <host> <port>
.
您运行 的服务只监听容器localhost
接口,因此容器外的任何东西都无法访问它。它需要监听 0.0.0.0
.