Подтвердить что ты не робот

Docker postgres pgadmin local connection

Я создал образ ubuntu с nginx, php и postgres.

Я хочу связать базу данных postgres в моем текущем изображении с pgadmin, расположенной на моей локальной машине.

Я попытался использовать докеров-инспектор, чтобы попытаться использовать изображение ip, чтобы установить соединение с моим локальным pgadmin, но без особого успеха. Я также попытался настроить некоторые порты на локальном, чтобы сделать работу с подключением.

4b9b3361

Ответ 1

Правильный вопрос не знает, почему люди чувствуют себя "не представляется возможным ответить на этот вопрос".

Итак, вот как я делаю то, что вы пытаетесь сделать:

  • Потяните изображение postgres из Docker Hub

    docker pull postgres:latest

  • Запустите контейнер, используя следующую команду

    docker run -p 5432:5432 postgres

  • Используя команду проверки докеров, найдите IP

  • Используйте этот IP, PORT, Username и Password для подключения в PGADMIN

  • Вы также можете сделать простой telnet, как показано ниже, чтобы подтвердить, можете ли вы получить доступ к контейнеру postgres докера:

    telnet IP_ADDRESS 5432

Ответ 2

Что я добился успеха на Windows 10 работает Docker для Windows 1.12.6 (9655), шаг, как показано ниже:

  1. Вытащить последние postgres

    docker pull postgres:latest

  2. запустите почтовый сервер:

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

  3. Затем установил последнюю версию pgAdmin4 с сайта pgadmin

  4. Запустите pgAdmin 4, создайте новый сервер и введите следующий хост: 127.0.0.1 Порт: 5432 Имя пользователя: пароль пользователя: пароль123

  5. Тогда все в порядке, подключитесь к успеху Docker Postgres.

Ответ 3

Кроме того, вы можете объединить Postgres и Pgadmin в один файл docker-compose и войти в систему как пользователь [email protected], 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: [email protected]
      PGADMIN_DEFAULT_PASSWORD: admin
    restart: unless-stopped

volumes:
  postgres-data:

Ответ 4

Если 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 "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=postgres" -d dpage/pgadmin4

3. Теперь при добавлении нового сервера в веб-приложение phAdmin используйте в качестве имени сервера some-postgres

Обратите внимание на --link some-postgres когда мы поднимали pgAdmin. Эта команда делает контейнер postgres видимым для контейнера pgAdmin.

Ответ 5

Это то, что я сделал

для postgres

docker run -p 5432:5432  --name container-postgresdb -e POSTGRES_PASSWORD=admin -d postgres

для пгадмина

docker run -p 5050:80  -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=admin"  -d dpage/pgadmin4

Строка подключения для pgadmin

host: host.docker.internal
database: postgres
user: postgres
password: admin

Работает нормально !!!!!

Ответ 6

Вы должны открыть порт postgres в контейнере для вашей локальной системы. Вы делаете это, запустив контейнер следующим образом:

docker run -p 5432:5432 <name/id of container>

при соединении с вашим клиентом GUI или CLI обязательно используйте ip-адрес, а не localhost, даже если ваш ip-адрес является ip-адресом localhost.

docker ps предоставит вам IP-адрес, в который включен ваш контейнер postgres.

Ответ 7

Решение, которое я попробовал и сработало для меня, заключалось в создании файла docker compose, в который я включил postgress и pgadmin в качестве сервисов. Для более подробной информации: Подключение pgadmin к postgres в докере

Ответ 8

Я включил это в файл yaml докера, чтобы получить базу данных и pgAdmin:

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:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=postgres
      - PGADMIN_LISTEN_PORT=5454

Имя пользователя postgres - альфа, а пароль - xxxxxxxxxxx.

Выполните docker ps, чтобы получить идентификатор контейнера, а затем docker inspect <dockerContainerId> | grep IPAddress

например: docker inspect 2f50fabe8a87 | grep IPAddress

Вставьте IP-адрес в pgAdmin и учетные данные базы данных, используемые в Docker:

pgAdmin

Ответ 9

В моем случае у меня был контейнер PostgreSQL, поэтому я не изменил свой контейнер и не создал подход docker-compose, мне потребовался pgadming через несколько месяцев, чтобы установить PostgreSQL, так что это мой подход:

  1. docker inspect my_container_id_postgreSQL
  2. Сеть, назначенная PostgreSQL, была:

    "Сети": {           "docker_default": {               "IP-адрес": "172.18.0.2",               ...           }       }

  3. Запустил мой PGADMIN с командой --network.

    запуск докера -p 85:80 --network docker_default -e '[email protected]' -e 'PGADMIN_DEFAULT_PASSWORD = SuperSecret' -d dpage/pgadmin4

  4. Вставьте IP-адрес в pgAdmin и учетные данные базы данных, используемые в Docker.

Я надеюсь, что это может быть полезно для кого-то. С уважением.

Ответ 10

В моем случае я мог решить проблему с проверкой моего postgre изображения с помощью команды

docker inspect CONTAINER_ID  | grep IPAddress.

Итак, я использовал IP-адрес докера для настройки соединения с pgadmin 4, и все было в порядке. Благодаря @Afshin Ghazi