SSH 터널 및 Docker와 DB를 연결하는 방법
그런 다음 일부 서버만 데이터베이스에 연결할 수 있도록 구성합니다(예: EC2 서버만 RDS의 데이터베이스에 연결할 수 있음).
그러나 때때로 우리는 그러한 데이터베이스에 연결하고 우리 지역에서 무언가를 확인하고 싶습니다. 이 경우 SSH 터널 방식을 사용할 수 있습니다.
이 게시물은 그 방법을 설명합니다.
도커 이미지
데이터베이스에 연결하려면
psql
, mysql
또는 이와 유사한 명령을 실행해야 합니다.따라서 실제 데이터베이스와 호환되는 Docker 이미지를 준비합시다.
이 포스트에서는 PostgreSQL을 예로 들 계획인데, PostgreSQL에 대한 구체적인 정보는 없습니다. 좋아하는 것을 선택하십시오.
SSH 터널
다음으로 SSH 터널을 만들어 봅시다!
실제 명령은 다음과 같습니다.
$ ssh -L 15432:db.some-service.jp:5432 web.some-service.jp -N
그렇게 하려면 ssh
web.some-service.jp
를 할 수 있어야 합니다. SSH 터널링이 실패한 경우ssh -i {your_ssh_key} {your_ssh_user}@web.some-service.jp
시도하거나 ssh 구성이 올바른지 확인하십시오.위의 명령은 로컬의 15432 포트를
db.some-service.jp
의 5432 포트로 전달하는 것을 의미합니다.-N
옵션을 지정하면 명령이 원격 명령을 실행하지 않습니다. 이것은 포트를 포워딩하는 데 유용합니다.이 명령을 닫지 말고 다음 단계에서 실제로 데이터베이스에 연결해 봅시다!
데이터베이스에 연결
새 탭을 열고 데이터베이스에 연결해 보겠습니다.
실제 명령은 다음과 같습니다.
$ docker run -it --rm postgres:11.9 psql -h host.docker.internal -p 15432 -U db-user -W db_name
# Enter your db password
Password:
db_name=> SELECT * from users;
...
호스트에서 사용하는 내부 IP 주소로 확인되는 특수 DNS 이름
host.docker.internal
에 연결할 수 있습니다.그런 다음 이전 단계에서 전달된
15432
를 지정하여 데이터베이스에 연결하고 그곳에서 명령을 실행할 수 있습니다!마지막으로 전달 명령을 닫는 것을 잊지 마십시오!
요약
참고문헌
Reference
이 문제에 관하여(SSH 터널 및 Docker와 DB를 연결하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/danimal141/how-to-connect-your-db-with-an-ssh-tunnel-and-docker-5dp1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)