[postgresql] docker postgres pgadmin 로컬 연결

nginx, php 및 postgres로 우분투 이미지를 만들었습니다.

pgadmin내 로컬 컴퓨터에있는 현재 이미지의 postgres 데이터베이스를 연결하고 싶습니다 .

Docker 검사기를 사용하여 이미지 ip를 사용하여 로컬 pgadmin과 연결을 시도했지만 많은 성공을 거두지 못했습니다. 또한 연결이 작동하도록 로컬에서 일부 포트를 구성 해 보았습니다.



답변

사람들이 “그 질문에 대답하는 것이 불가능 해 보인다”고 느끼는 이유를 모른다는 것은 유효한 질문입니다.

그래서, 당신이하려는 일을하는 방법은 다음과 같습니다.

  1. Docker Hub에서 postgres 이미지 가져 오기

    docker pull postgres:latest

  2. 아래 명령을 사용하여 컨테이너를 실행하십시오.

    docker run -p 5432:5432 postgres

  3. Docker의 inspect 명령을 사용하여 IP 찾기

  4. 해당 IP, PORT, 사용자 이름 및 암호를 사용하여 PGADMIN에 연결하십시오.

  5. Docker postgres 컨테이너에 액세스 할 수 있는지 확인하기 위해 아래와 같은 간단한 텔넷을 수행 할 수도 있습니다.

    telnet IP_ADDRESS 5432


답변

Windows 1.12.6 (9655) 용 도커를 실행하는 Windows 10에서 성공한 것은 다음과 같습니다.

  1. 최신 postgres 가져 오기

    docker pull postgres:latest

  2. postgres 컨테이너를 실행합니다.

    docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password123 --name db-my -p 5432:5432 --restart=always postgres

  3. 그런 다음 pgadmin 웹 사이트 에서 최신 버전의 pgAdmin4를 설치했습니다.

  4. pgAdmin 4를 실행하여 새 서버를 만들고 다음과 같이 입력합니다. 호스트 : 127.0.0.1 포트 : 5432 사용자 이름 : 사용자 암호 : password123

  5. 그런 다음 모든 것이 정상입니다. 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-postgrespgAdmin을 불러 왔을 때 주목하십시오 . 이 명령은 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에서 사용되는 데이터베이스 자격 증명에 삽입합니다.

pgAdmin