2016-11-28 4 views
0

도커 컨테이너 내에서 실행중인 nodejs-mongo db 앱이 있습니다. localhost 등에서 액세스 할 수 있습니다.로컬 서버에 도커 컨테이너 노출

하지만이 컨테이너를 로컬 서버에 설치/배포하여 네트워크 외부에서이 응용 프로그램에 액세스 할 수 있습니다. 내 서버는 Ubuntu 16.04.1 LTS (xenial)

또한 외부에서 Db에 액세스하여 사용자 지정 스크립트를 사용하여 Db로 데이터를 보낼 수 있습니다.

저는 네트워크 및 Docker에서 초보자입니다. 결과적으로 나는해야 할 일을 이해하기 위해 고심하고 있습니다. 모든 포인터는 고정 표시기 - compose.yml 여기

version: "2" 
services: 
    web: 
     build: . 
     volumes: # Use this to mount app from local disk 
      - ./:/usr/src/app 
     ports: 
      - "8080:8080" 
      - "5858:5858" 
     entrypoint: node --debug=5858 app.js 
     links: 
      - mongo 
    mongo: 
     image: mongo 
     ports: 
      - "27017:27017" 

에게 여기

입니다 감사하겠습니다 내 Dockerfile입니다

FROM node:argon 

# Create app directory 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

# Install app dependencies 
COPY package.json /usr/src/app/ 
RUN npm install 

# Bundle app source 
COPY . /usr/src/app 

EXPOSE 8080 
CMD [ "npm", "start" ] 
내 컨테이너 docker-compose up --build -d

여기를 시작하는 줄

일반적인 명령 docker ps 결과 :

"node --debug=5858 ap" 13 minutes ago  Up 13 minutes  0.0.0.0:5858->5858/tcp, 0.0.0.0:8080->8080/tcp nodemongochart_web_1 

"/entrypoint.sh mongo" 13 minutes ago  Up 13 minutes  0.0.0.0:27017->27017/tcp       nodemongochart_mongo_1 
+0

dockerfile과 docker-compose.yml은 단단한 것처럼 보이기 때문에 제대로 작동해야합니다. 로컬 서버는 어디에 있습니까? 어떻게 접근하고 있니? –

+0

나는 하나의 사무용 우분투 시스템을 공급 받았다. 그래서 그 설정에 대해 잘 모르겠습니다. ssh 인증서를 사용하여 액세스하고 있습니다. 도움이 될만한 정보가 있다면, 나에게이 기계를 할당 한 사람에게 – katch

답변

0

로컬 서버를 사용하는 경우 가정에서 자신의 컴퓨터를 사용하는 경우 "포트 포워딩"이 필요합니다. 그들이해야, 당신이 아닌 자신의 네트워크에서 다른 호스트를 사용하게 될 경우

http://you-personal-ip:8080 

: 그것은 당신의 라우터에서 일반적으로 구성, 그리고이 같은 링크의 어떤 종류를 통해 응용 프로그램에 액세스 할 수 있습니다 이 경우 포트 포워딩이 필요하지 않은 IP 주소를 제공하십시오.

+0

ok를 사무실의 어딘가에있는 컴퓨터에 확인해 볼 수 있습니다. ssh -i @과 함께 ssh를 사용하여 액세스하고 있습니다. http : // : 8080을 사용하여 앱에 액세스를 시도했습니다. 그러나 브라우저에서 열 때 시간 초과가 발생합니다. – katch

+0

해당 컴퓨터에서 포트 8080에 액세스 할 수 있는지 확인하십시오. 방화벽이 방화벽을 차단할 가능성이 있습니다 (iptables). – HakRo