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 서버를 추가 비용으로 호스트 이름 postgres
, 포트를 사용하십시오 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:
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 컨테이너에 표시합니다.
이것이 내가 한 일입니다
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
잘 작동합니다 !!!!!
컨테이너의 postgres 포트를 로컬 시스템에 노출해야합니다. 다음과 같이 컨테이너를 실행하면됩니다.
docker run -p 5432:5432 <name/id of container>
GUI 클라이언트 또는 CLI와 같은 경우 ip-address가 localhost ip-address 인 경우에도 localhost 아닌 ip-address를 사용합니다.
docker ps
postgres 컨테이너가있는 IP 주소를 제공합니다.
내가 시도하고 일한 해결책은 postgress와 pgadmin을 서비스로 포함하는 docker compose 파일을 만드는 것이 었습니다. 자세한 내용 : docker의 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에서 사용되는 데이터베이스 자격 증명에 삽입합니다.
제 경우에는 PostgreSQL 컨테이너가 있었기 때문에 컨테이너를 변경하지 않을거나 도커 작성 접근을 만들지 가능성이 있습니다. PostgreSQL을 설치 한 몇 달 나중에 pgadming이 필요하다는 것이 제 접근 방식입니다.
docker inspect my_container_id_postgreSQL
PostgreSQL에 할당 된 네트워크는 다음과 가변적입니다.
"네트워크": { "docker_default": { "IPAddress": "172.18.0.2", ...}}
--network
명령으로 내 PGADMIN을 실행했습니다.docker run -p 85:80 --network docker_default -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com'-e 'PGADMIN_DEFAULT_PASSWORD = SuperSecret'-d dpage / pgadmin4
Ip 주소를 pgAdmin 및 docker에서 사용되는 데이터베이스 자격 증명에 삽입합니다.
누군가에게 유용 할 수 있기를 바랍니다. 문안 인사.
제 경우에는 명령을 통해 내 postgre 이미지를 검사하는 문제를 해결할 수 있습니다.
docker inspect CONTAINER_ID | grep IPAddress.
그래서 도커 IP 주소를 사용하여 pgadmin 4 연결을 구성했는데 모든 것이 정상이었습니다. @Afshin Ghazi 덕분에
참고 URL : https://stackoverflow.com/questions/25540711/docker-postgres-pgadmin-local-connection
'ProgramingTip' 카테고리의 다른 글
Excel의 수식에서 셀 번호가 증가하지 않도록 방지 (0) | 2020.12.10 |
---|---|
소스에서 CentOS 6.5 / Linux / Unix에서 OpenSSL을 업그레이드하는 방법은 무엇입니까? (0) | 2020.12.10 |
PHP에서 슈퍼를 호출하는 방법? (0) | 2020.12.10 |
웹 페이지를 인쇄 할 때 페이지 제목 및 날짜 제거 (CSS 사용?) (0) | 2020.12.10 |
URL 인코딩이없는 http_build_query () (0) | 2020.12.10 |