2016-07-12 4 views
1

내 개발 컴퓨터에서 호스트의 mysql 서버에 도킹 장치 컨테이너를 연결하려고합니다."호스트"네트워킹 모드의 Docker가 호스트에 포트를 바인딩하지 않습니다.

phpfpm: 
    image: mageinferno/magento2-php:7.0.8-fpm-0 
    container_name: php7fpm 
    restart: always 
    hostname: phpfpm 
    ports: 
    - "9000:9000" 
    environment: 
    - APP_MAGE_MODE=developer 
    volumes: 
    - /Users:/Users 
    - /usr/local/var/log/nginx:/var/www/logs 
    net: "host" 

문제는 내가 고정 표시기 컨테이너를 시작한 후, 나는 텔넷 호스트에서 9000을 localhost로 할 수 없다는 것입니다 이렇게하려면 나는과 같이 "호스트"할 수있는 네트워크 모드를 설정했습니다. 컨테이너가 브리지 모드에서 실행될 때 9000의 컨테이너에 연결하는 것은 문제가되지 않습니다. docker ps 명령은 다음을 보여줍니다.

 
CONTAINER ID  IMAGE         COMMAND     CREATED    STATUS    PORTS    NAMES 
6de4c973a34a  mageinferno/magento2-php:7.0.8-fpm-0 "/usr/local/bin/start" 4 seconds ago  Up 3 seconds       php7fpm 

왜 컨테이너가 포트를 호스트에 바인딩하지 않습니까? 내가 여기서 무엇을 놓치고 있니? 내가 Mac 용 OS X 도커을 사용하여 10.10 오전

(버전 1.12.0-RC3-beta18 (빌드 : 9996))

+0

Windows에서 Docker Machine을 사용하고 있습니까? –

+0

@NguyenSyThanhSon Mac 용 도커를 사용 중입니다. – snez

+0

텔넷으로 연결하십시오. 192.168.99.104:9000 –

답변

1

당신이 호스트 네트워킹을 사용하려고하는 이유가 있나요? 설정하는 것이 약간 까다로울 수 있으며 대부분 특수한 용도로 사용됩니다.

iptables -I INPUT 1 -p tcp -m tcp --dport 9000 -j ACCEPT

그렇지 않으면 당신은 아마 브리지 모드와 더 튀어 나와있다 : 최소한, 당신은 같은 것을 통해 도커 호스트 해당 포트를 할 수 있는지 확인해야합니다.

+0

저는 Mac에있어 "Docker for Mac"이 나올 때까지 개발과 관련하여 많은 문제가 있었기 때문에 Docker를 사용하지 않았습니다. 이제 Mac 용 Docker가 출시되었으므로 php7 컨테이너를 php5.6 기본 설정에 별도로 사용하고 싶지만 전체 개발 설정을 컨테이너로 옮기는 것은 번거롭기는하지만 Docker Mac의 경우 과거에는 Mac에서 있었던 모든 문제를 해결 했으므로 PHP 만 컨테이너로 만들려고합니다. 나는 iptables가 없지만 "nc -l 9000"은 잘 동작한다. – snez

관련 문제