2016-06-07 2 views
1

아래 dockerfile을 사용하여 centos7과 함께 새 도커 이미지 (rm/node : 10.0)를 만들었습니다.매핑 도커 포트가 실패했습니다.

FROM rm/node:9.0 
EXPOSE 3000 

WORKDIR /Reader_Manager/SISPlatform/Auth 
RUN npm install 

WORKDIR /Reader_Manager/SISPlatform/Auth/portal 
CMD npm run-script dev-server-linux 

"NPM 실행 스크립트 dev에 서버 - 리눅스는"내가 실행중인 백그라운드에서 생성 된 고정 표시기 이미지를 실행하려고하면 package.json 파일

"dev-server-linux": "export NODE_ENV=development && pm2 start --no-daemon AuthServer -o ../../logs/pm2/out/auth_out.log -e ../../logs/pm2/err/auth_error.log --log-date-format 'DD-MM-YYYY HH:mm:ss.SSS'", 

에 정의 된 명령 아래에 호출합니다.

docker run -d rm/node:10.0 
08633576828fe33ba880c7b6a40dd9306c885d24ce36a765a459f5acc8e91808 
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning. 


docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
08633576828f  rm/node:10.0  "/bin/sh -c 'npm run-" About a minute ago Up About a minute 3000/tcp   nostalgic_gates 

컨테이너 내부에서 nodejs를 실행 중이므로 3000 포트가 노출되었습니다. 그래서 3000 포트를 매핑하려고했지만 오류로 인해 실패했습니다.

[[email protected] docker_test]$ docker run -p 3000:3000 -d rm/node:10.0 
3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51 
Error response from daemon: Cannot start container 3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51: failed to create endpoint big_wing on network bridge: COMMAND_FAILED: '/sbin/iptables -w2 -t nat -A DOCKER -p tcp -d 0/0 --dport 3000 -j DNAT --to-destination 172.17.0.3:3000 ! -i docker0' failed: iptables: No chain/target/match by that name. 

답변

0

시스템의 어떤 항목이 작동해야하는 docker iptables 항목을 제거했습니다.

에 CentOS의 경우 :

sudo service docker restart 
sudo service iptables save 

을 그리고 우분투 : 두 개의 수정은 here 제안되었다

sudo apt-get install iptables-persistent 
sudo service docker restart 
iptables-save > /etc/iptables/rules.v4 # you may need to "sudo -s" to get a root shell first 

고정 표시기의 재시작 후에는 NAT 테이블 아래에 고정 표시기 체인을 볼 수 :

iptables -t nat -vL 
관련 문제