[postgresql] docker postgres pgadmin 로컬 연결
nginx, php 및 postgres로 우분투 이미지를 만들었습니다.
pgadmin
내 로컬 컴퓨터에있는 현재 이미지의 postgres 데이터베이스를 연결하고 싶습니다 .
Docker 검사기를 사용하여 이미지 ip를 사용하여 로컬 pgadmin과 연결을 시도했지만 많은 성공을 거두지 못했습니다. 또한 연결이 작동하도록 로컬에서 일부 포트를 구성 해 보았습니다.
답변
사람들이 “그 질문에 대답하는 것이 불가능 해 보인다”고 느끼는 이유를 모른다는 것은 유효한 질문입니다.
그래서, 당신이하려는 일을하는 방법은 다음과 같습니다.
-
Docker Hub에서 postgres 이미지 가져 오기
docker pull postgres:latest
-
아래 명령을 사용하여 컨테이너를 실행하십시오.
docker run -p 5432:5432 postgres
-
Docker의 inspect 명령을 사용하여 IP 찾기
-
해당 IP, PORT, 사용자 이름 및 암호를 사용하여 PGADMIN에 연결하십시오.
-
Docker postgres 컨테이너에 액세스 할 수 있는지 확인하기 위해 아래와 같은 간단한 텔넷을 수행 할 수도 있습니다.
telnet IP_ADDRESS 5432
답변
Windows 1.12.6 (9655) 용 도커를 실행하는 Windows 10에서 성공한 것은 다음과 같습니다.
-
최신 postgres 가져 오기
docker pull postgres:latest
-
postgres 컨테이너를 실행합니다.
docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password123 --name db-my -p 5432:5432 --restart=always postgres
-
그런 다음 pgadmin 웹 사이트 에서 최신 버전의 pgAdmin4를 설치했습니다.
-
pgAdmin 4를 실행하여 새 서버를 만들고 다음과 같이 입력합니다. 호스트 : 127.0.0.1 포트 : 5432 사용자 이름 : 사용자 암호 : password123
- 그런 다음 모든 것이 정상입니다. docker postgres 인스턴스 성공에 연결하십시오.
답변
또는 Postgres와 Pgadmin을 하나의 docker-compose
파일 에 결합 하고 user pgadmin4@pgadmin.org
, pwd : 로 로그인 할 수 admin
있습니다. Posgres 서버를 추가하려면 hostname postgres
, port를 사용하십시오 5432
.
version: '3'
services:
postgres:
image: postgres
hostname: postgres
ports:
- "6543:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: TEST_SM
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
pgadmin:
image: dpage/pgadmin4
depends_on:
- postgres
ports:
- "5555:80"
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: admin
restart: unless-stopped
volumes:
postgres-data:
답변
이것이 내가 한 일입니다
postgres 용
docker run -p 5432:5432 --name container-postgresdb -e POSTGRES_PASSWORD=admin -d postgres
pgadmin 용
docker run -p 5050:80 -e "PGADMIN_DEFAULT_EMAIL=name@example.com" -e "PGADMIN_DEFAULT_PASSWORD=admin" -d dpage/pgadmin4
pgadmin에 대한 연결 문자열
host: host.docker.internal
database: postgres
user: postgres
password: admin
잘 작동합니다 !!!!!
답변
제 경우에는 명령을 통해 내 postgre 이미지를 검사하는 문제를 해결할 수 있습니다.
docker inspect CONTAINER_ID | grep IPAddress.
그래서 도커 IP 주소를 사용하여 pgadmin 4 연결을 구성했는데 모든 것이 정상이었습니다. @Afshin Ghazi 덕분에
답변
pgAdmin이 동일한 Ubuntu 호스트 / 게스트에서 실행되도록 의도 된 경우 postgres 컨테이너를 연결해야하므로 이름으로 확인할 수 있습니다.
1. postgres 컨테이너를 실행합니다.
docker run --name some-postgres -e POSTGRES_PASSWORD=postgres -d postgres
2. pgAdmin 컨테이너를 실행합니다.
docker run -p 80:80 --link some-postgres -e "PGADMIN_DEFAULT_EMAIL=email@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=postgres" -d dpage/pgadmin4
3. 이제 phAdmin 웹 앱에 새 서버를 추가 할 때 some-postgres
서버 이름으로 사용 합니다.
--link some-postgres
pgAdmin을 불러 왔을 때 주목하십시오 . 이 명령은 postgres 컨테이너를 pgAdmin 컨테이너에 표시합니다.
답변
데이터베이스와 pgAdmin을 가져 오기 위해 이것을 docker yaml 파일에 포함했습니다.
database:
image: postgres:10.4-alpine
container_name: kafka-nodejs-example-database
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
expose:
- "5432"
ports:
- 8000:5432
volumes:
- ./services/database/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql
- ./services/database/seed.sql:/docker-entrypoint-initdb.d/2-seed.sql
pgadmin:
image: dpage/pgadmin4
ports:
- 5454:5454/tcp
environment:
- PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
- PGADMIN_DEFAULT_PASSWORD=postgres
- PGADMIN_LISTEN_PORT=5454
postgres 사용자 이름은 alphaone이고 암호는 xxxxxxxxxxx입니다.
DO가 docker ps
다음 컨테이너 ID를 얻을 수 있습니다docker inspect <dockerContainerId> | grep IPAddress
예 : docker inspect 2f50fabe8a87 | grep IPAddress
Ip 주소를 pgAdmin 및 docker에서 사용되는 데이터베이스 자격 증명에 삽입합니다.