如果我通过首先创建映像然后运行它 ( docker build --rm -t myApp+ docker run -p 80:80 -P -d myApp) 来启动 Docker 容器,则一切正常。
但是,当我对 Docker-compose 执行相同操作并访问 localhost 时,浏览器会返回一个 ERR_EMPTY_RESPONSE 错误(不是典型的:“连接被拒绝”)。
我哪里错了?
Docker-compose.yml:
version: '2'
services:
myApp:
build: myApp
ports:
- "80:8000"
Run Code Online (Sandbox Code Playgroud)
/myApp/Dockerfile:
FROM fedora-nodeJS
ADD app.js /
EXPOSE 8000
CMD node app
Run Code Online (Sandbox Code Playgroud)
/myApp/app.js:
var http = require('http');
var PORT = 8000;
var ADDR = '0.0.0.0';
http.createServer(function(req, res) {
res.writeHead(301, { Location: 'http://stackoverflow.com' });
res.end();
}).listen(PORT,ADDR);
Run Code Online (Sandbox Code Playgroud)
:: 我知道只用 Docker-compose 启动一个容器完全没有意义,但是我在尝试启动多个容器时遇到了相同的 ERR_EMPTY_RESPONSE 错误,所以我最终遇到了这个荒谬的场景,试图了解什么是失败的。