“本地主机没有发送数据。 ERR_EMPTY_RESPONSE“和”curl:(52)来自服务器的空回复“

当我尝试访问Docker容器之外的时候,我得到了空数据,下面提到了这个错误。 我没有在Docker容器中使用curl和wget命令的问题。 该容器基于Angular JS图像。

“localhost没有发送数据ERR_EMPTY_RESPONSE”和“curl:(52)来自服务器的空回复”

请帮忙。

抱歉! 忘记发布实际的代码。 在这里我的Dockerfile和package.json文件。

的package.json

{ "name": "angularjs-project”, "version": "0.0.0", "license": "MIT", "scripts": { "ng": "ng", "start": "ng serve -H 0.0.0.0", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "^4.3.6", "@angular/common": "^4.2.4", "@angular/compiler": "^4.2.4", "@angular/core": "^4.2.4", "@angular/forms": "^4.2.4", "@angular/http": "^4.2.4", "@angular/platform-browser": "^4.2.4", "@angular/platform-browser-dynamic": "^4.2.4", "@angular/router": "^4.2.4", "core-js": "^2.4.1", "font-awesome": "^4.7.0", "primeng": "^4.1.3", "rxjs": "^5.4.2", "zone.js": "^0.8.14" }, "devDependencies": { "@angular/cli": "1.3.2", "@angular/compiler-cli": "^4.2.4", "@angular/language-service": "^4.2.4", "@types/jasmine": "~2.5.53", "@types/jasminewd2": "~2.0.2", "@types/node": "~6.0.60", "codelyzer": "~3.1.1", "jasmine-core": "~2.6.2", "jasmine-spec-reporter": "~4.1.0", "karma": "~1.7.0", "karma-chrome-launcher": "~2.1.1", "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.2", "ts-node": "~3.2.0", "tslint": "~5.3.2", "typescript": "~2.3.3" } } 

Dockerfile

  FROM node:6 RUN mkdir -p /angularjs-sample ADD . /angularjs-sample WORKDIR /angularjs-sample RUN cd /angularjs-sample RUN npm cache clean RUN npm install -g @angular/cli RUN npm install RUN npm update EXPOSE 4200 CMD ["ng", "serve"] 

理想的方式来做到这一点我build议在创build时绑定主机的IP地址到你的容器。 您不应该从docker文件启动您的应用程序的运行。 创build容器,绑定你的主机,写一个脚本来启动你的应用程序

你可以这样做,

 docker run -d -p 4545:8553--name my-container my-image my-command 

其中“ 8553 ”可以是您的应用程序默认的内部端口与“ 4545 ”外部端口装箱