2017-10-03 12 views
0

포트 5432에서 포스트 그레스에 액세스해야하는 3 개의 도커 컨테이너가 있습니다. 각각 독립적으로 실행하면 -p 5432:5432을 전달할 수 있지만 충돌하기 때문에 한 번에 두 개 이상을 실행할 수 없습니다.도커가 이미 할당 한 포트

도커 작성으로이 문제를 해결하고 싶지만 yml에서 포트 매핑을 수행하는 방법에 대한 지침이 필요합니다.

version: '2' 

services: 
    foo: 
    image: mynamespace/foo 
    ports: 
     - "5432:5432" 
    bar: 
    image: mynamespace/bar 
    ports: 
     - "5432:5432" 
    baz: 
    image: mynamespace/baz 
    ports: 
     - "5432:5432" 

답변

1

당신은 모든 컨테이너의 포트를 열 필요가 없습니다 :

이 내가 작동하지 않는,있는 것입니다. 데이터베이스 컨테이너 용으로 열면됩니다. 어떤 결과가 이런 :

version: '2' 

services: 
    foo: 
    image: mynamespace/foo 
    bar: 
    image: mynamespace/bar 
    baz: 
    image: mynamespace/baz 
+0

데이터베이스는 내 Mac에서 실행 중입니다. PostgreSQL 클라이언트와 연결할 때 환경 변수로 파이썬에서'docker.for.mac.localhost' 호스트 이름을 사용하고 있습니다. – AlienWebguy

+0

이 스레드는'localhost'를 사용하지 않기 때문에 전혀 포트 매핑을 할 필요가 없다고 생각하게합니다 ... – AlienWebguy

+0

그래, 나도 네 질문에 혼란스러워. 그러나 나는 그것이 사실이라고 생각한다. 기본이 아닌 도커 네트워크 구성을 사용하지 않는 한. 푸 바 ... :) –