지난 이틀 동안 나는 도커와 문제를 겪고 있는데 그것을 얻을 수있다. 도커 문서에 따라 컨테이너가 연결을 수신 대기하는 포트를 EXPOSE
으로 노출 할 수 있습니다. 여태까지는 그런대로 잘됐다!Docker EXPOSE. 그것을 얻을 수 없다
내 응용 프로그램이 포트 8080에서 수신 대기하는 경우 내 도커 컨테이너를 EXPOSE 8080
으로 노출하고 docker run -p 80:8080
으로 주 호스트의 포트 80에 바인드해야합니다.
# DOCKER-VERSION 0.0.1
FROM ubuntu:14.10
# make sure apt is up to date
RUN apt-get update
# install nodejs and npm
RUN apt-get install -y nodejs-legacy npm git git-core
ADD package.json /root/
ADD server.js /root/
# start script
ADD start.sh /root/
RUN chmod +x /root/start.sh
EXPOSE 8080
CMD ./root/start.sh
그리고 내 start.sh
그냥 & npm install
& node server.js
cd /root/
을 runan :
여기 내 Dockerfile입니다. docker build -t app1 .
그리고 난 내 고정 표시기를 시작하는 방법 : docker run -it -p 80:8080 --name app1 app1
정말 유선은 무엇
, 이것은 아니다
다음var express = require('express');
// Constants
var PORT = 8080;
// App
var app = express();
app.get('/', function (req, res) {
res.send('Hello world\n');
});
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);
내가 내 고정 표시기 이미지를 구축하는 방법입니다
나는 간단한 표현 앱 nodejs있어 일. 작동하게하려면EXPOSE 8080
을
EXPOSE 80
으로 변경해야합니다. 나는 그것을 얻지 않는다.
설명이 있으십니까? 읽기
감사합니다, 톰 당신의 nodejs 응용 프로그램에서
이것은 구성상의 문제이며, 항상 그런 유형의 포트 매핑을 사용합니다. "작동하지 않음"은 충분한 정보가 아닙니다. 포트가 호스트에서 열려 있습니까? 똑바로 세우면 어떻게 될까요? -p 8080 : 8080? – user2105103
"작동하지 않는다"는 말은, 메인 호스트에서 내 컨테이너를 요청한 경우에도 포트 80의 말풍선이나 브라우저를 사용하여 내 컨테이너에 연결할 수 없다는 것을 의미합니다. "-p 8080 : 8080"을 사용하면 아무 것도 바뀌지 않습니다. –