2015-01-02 2 views
-1

VOLUME을 사용하여 데이터를 저장하는 Postgres image을 사용 중이며 포트를 외부에 노출하지는 않지만 연결할 때 연결이 필요합니다.Docker : 연결된 서비스에만 연결하는 방법

데이터베이스의 호스트와 포트를 지정해야하는 앱을 사용하여 호스트 시스템에서 연결할 수있는 방법이 있는지 궁금합니다. 귀하의 링크에서 문서에서

+0

이 질문은 프로그래밍 질문을 겨냥한 Stackoverflow에서 오프 주제입니다. 대신이 질문을 http://www.serverfault.com에 게시하고 여기에서 삭제할 수 있습니다. –

+0

당신의 설명에 맞을 수있는 많은 [top docker questions] (http://stackoverflow.com/search?q=docker)가 있으므로 공정한 게임이라고 생각했습니다. 나는 이해하지만, 그것을 거기로 옮길 것입니다. –

+0

전혀 문제가 없으며 아무런 해를 끼치 지 않지만 몇 가지 잘못을 저지른 경우에는 문제가 해결되지 않습니다. –

답변

0

:

이 이미지는 너무 표준 컨테이너 연결 링크 된 컨테이너가 자동으로 사용할 것, 5432 (포스트그레스 포트)에 노출이 포함되어 있습니다. 기본 postgres 사용자와 데이터베이스는 initdb로 엔트리 포인트에 생성됩니다.

+0

이것은 DB 컨테이너에 연결된 컨테이너에서만 사용할 수 있습니다. 분명히 [PG Commander] (https://eggerapps.at/pgcommander/)와 같은 앱은 연결된 컨테이너 내에서 실행되지 않으므로 연결할 수 없습니다. –

+0

컨테이너에 액세스 할 수있는 모든 항목에서 사용할 수 있습니다. 'docker ps'를 실행하고 컨테이너 이름을 찾은 다음'docker inspect | grep IP'을 입력하여 ip를 얻은 다음'psql --host '를 입력하십시오. 다른 점은이 IP가 매번 변경되므로 사용하기가 불편할 수 있다는 것입니다. –

+0

이것은 작동하지 않습니다. 연결 컨테이너 외부의 클라이언트는 이러한 방식으로 설정된 경우 내부 서비스에 연결할 수 없습니다. 'docker ps'의 ports 섹션은'5432/tcp'를 말하며'0.0.0.0:5432-> 5432/tcp, 0.0.0.0:5432-> 5432/tcp'와는 다릅니다. –

0

몇 가지 옵션이 있습니다. 가장 쉬운 방법은 실행 명령을 수행 할 때 호스트의 포트를 통해 컨테이너를 노출하는 것입니다. 예 :

$ docker run -d -p 5432:5432 postgres 
8c04d3401878cc93503950ab3f118f0c65960719b969adb06a50bb2a482e5147 

이제 호스트에서 포트 5432를 통해 서비스에 액세스 할 수 있습니다.

$ psql -h 0.0.0.0 -p 5432 -U postgres 

당신은 또한 --net=host 등 다양한 도커 네트워킹 옵션으로 볼 수 있지만, 당신이 무슨 일을하는지 알지 못한다면 나는 이것을 권하고 싶지 않다. 설명서는 여기 http://docs.docker.com/articles/networking/입니다.

하지만 가장 좋은 해결책은 다른 앱도 컨테이너에 배치하는 것입니다.

+0

예, 시스템을 안전하게 유지하기 위해 피하려고하는 것입니다. 그리고 [PG Commander] (https://eggerapps.at/pgcommander/)와 같은 도구를 컨테이너에 포함시키는 방법을 모르거나해야만합니다. 현재로서는 [Adminer] (http://www.adminer.org/)에 정착하고 있지만 이는 단기적인 해결책입니다. –

+0

맞아, 이제 이해해. IMO는 앱을 다른 컨테이너에 넣는 것이 가장 좋은 방법입니다. 관리자는 웹 앱인 것처럼 보이므로 매우 직설적입니다. 다른 사람들은 이미 그것을 한 것 같습니다 : https : //registry.hub.docker.com/u/clue/adminer/ –

+0

어쩌면 충분히 명확하지 않았을 수도 있습니다. 컨테이너에 Adminer가 이미 있습니다.하지만 제가 말했듯이 이는 단기적인 해결책이기 때문에 다른 도구도 사용하고 싶습니다. 나는 방법이있을 것이라고 확신합니다. –

관련 문제