로컬 컨테이너에서 실행 중인 애플리케이션이 로컬 머신의 PostgreSQL 데이터베이스에 연결되도록 허용하려면 다음 단계를 따르세요.
-
PostgreSQL 데이터베이스가 이 머신에 설치되어 실행되고 있는지 확인하세요. psql 명령줄 도구 또는 기타 시각적 도구를 사용하여 로컬 시스템의 데이터베이스를 관리하고 연결할 수 있습니다.
-
애플리케이션의 구성 파일에서 로컬 머신의 PostgreSQL 데이터베이스에 연결하도록 데이터베이스 연결을 구성합니다. 일반적으로 다음 연결 매개변수를 지정해야 합니다.
- 호스트 이름: 일반적
localhost
으로 또는127.0.0.1
, 로컬 시스템을 나타냅니다. - 포트 번호: 기본적으로 PostgreSQL은 포트 5432를 사용합니다.
- 데이터베이스 이름: 연결하려는 데이터베이스의 이름입니다.
- 사용자 이름 및 비밀번호: 데이터베이스에 연결하는 데 사용되는 사용자 이름과 비밀번호입니다.
예를 들어 애플리케이션 구성 파일의 데이터베이스 연결 구성은 다음과 같습니다.
spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase spring.datasource.username=myuser spring.datasource.password=mypassword
위 구성을
mydatabase
연결하려는 실제 데이터베이스 이름myuser
과mypassword
실제 데이터베이스 사용자 이름 및 비밀번호로 바꾸십시오. - 호스트 이름: 일반적
-
로컬로 실행되는 Docker 컨테이너에서 애플리케이션이 로컬 머신의 PostgreSQL 데이터베이스에 액세스할 수 있는지 확인하세요. 기본적으로 Docker 컨테이너는 로컬 시스템과 네트워크를 공유하며
localhost
또는 를 통해127.0.0.1
로컬 시스템의 서비스에 액세스 할 수 있습니다. 따라서 컨테이너에서 기본적으로 동일한 데이터베이스 연결 구성을 사용할 수 있습니다.컨테이너에서 포트 매핑이 사용되는 경우(예: 컨테이너의 포트 8080이 로컬 시스템의 포트 8080에 매핑됨) 데이터베이스 연결 구성의 호스트 이름을 로컬 시스템의 IP 주소로 변경해야 합니다.
docker.for.mac.host.internal
또는 호스트 이름으로 사용할 수 있습니다docker.for.win.localhost
. 이는 기본적으로 서비스에 액세스하기 위해 Mac 및 Windows의 Docker Desktop에서 제공하는 특수 호스트 이름입니다.예를 들어 포트 매핑이 컨테이너에서 사용되고 컨테이너의 8080 포트가 로컬 시스템의 8080 포트에 매핑된 경우 애플리케이션 구성 파일의 데이터베이스 연결 구성은 다음과 같습니다.
spring.datasource.url=jdbc:postgresql://docker.for.mac.host.internal:5432/mydatabase spring.datasource.username=myuser spring.datasource.password=mypassword
위 구성을
mydatabase
연결하려는 실제 데이터베이스 이름myuser
과mypassword
실제 데이터베이스 사용자 이름 및 비밀번호로 바꾸십시오.
위 단계를 수행하면 로컬 컨테이너의 애플리케이션이 로컬 머신의 PostgreSQL 데이터베이스에 연결할 수 있어야 합니다. 데이터베이스 연결이 올바르게 구성되어 있고 로컬 시스템의 PostgreSQL 데이터베이스가 실행 중인지 확인하세요.