Мне недавно пришлось перезагружать мой компьютер, поэтому я отключил мой docker контейнер и соединения с сервером. После перезапуска PGAdmin4 больше не отображает данные тома docker, однако мое приложение все еще может получить доступ к данным тома docker. Я могу войти в свою базу данных как пользователь postgres, хотя в базе данных нет таблиц. PGAdmin4 на 5050: 5050, Postgres на 5432: 5432, приложение на 5000: 5000. Я могу войти в базу данных через PGAdmin, пока контейнер находится в режиме паузы, чего раньше не было, и мне трудно понять, почему.
У меня есть docker -композитный файл, например Итак:
version: "3.7"
services:
postgres:
container_name: postgres
restart: always
image: postgres:12.2
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- flask-app-db:/var/lib/postgresql/data
ports:
- 5432:5432
networks:
- pgnetwork
pgadmin4:
container_name: pgadmin4
restart: always
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
- SERVER_PORT=${SERVER_PORT}
volumes:
- pga4:/var/lib/pgadmin
ports:
- 5050:5050
networks:
- pgnetwork
dplio:
container_name: dplio
restart: always
build:
context: .
dockerfile: Dockerfile
environment:
# MY_ENV_VARS
ports:
- 5000:5000
volumes:
- .:/dplio
networks:
- pgnetwork
depends_on:
- postgres
networks:
pgnetwork:
driver: bridge
volumes:
flask-app-db:
name: flask-app-db
pga4:
name: pga4
Мой вывод терминала при запуске контейнеров:
Starting postgres ... done
Starting pgadmin4 ... done
Starting dplio ... done
Attaching to pgadmin4, postgres, dplio
postgres |
postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
postgres |
postgres | 2020-03-17 11:18:55.599 UTC [1] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
postgres | 2020-03-17 11:18:55.599 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres | 2020-03-17 11:18:55.600 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres | 2020-03-17 11:18:55.604 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres | 2020-03-17 11:18:55.619 UTC [26] LOG: database system was shut down at 2020-03-17 10:41:43 UTC
postgres | 2020-03-17 11:18:55.623 UTC [1] LOG: database system is ready to accept connections
pgadmin4 | [2020-03-17 11:18:56 +0000] [1] [INFO] Starting gunicorn 19.9.0
pgadmin4 | [2020-03-17 11:18:56 +0000] [1] [INFO] Listening at: http://[::]:80 (1)
pgadmin4 | [2020-03-17 11:18:56 +0000] [1] [INFO] Using worker: threads
pgadmin4 | [2020-03-17 11:18:56 +0000] [80] [INFO] Booting worker with pid: 80
dplio | * Serving Flask app "app" (lazy loading)
dplio | * Environment: docker
dplio | * Debug mode: on
dplio | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
dplio | * Restarting with stat
dplio | * Debugger is active!
dplio | * Debugger PIN: 209-285-043
Я подумал попробовать pg_restore с тома docker на хост, но это не похоже в качестве потенциального решения, я думаю, это проблема соединения между контейнером docker и моим хост-компьютером, а не проблема потери данных.
Я установил порт PGAdmin4 на 5050 в браузере, хотя он работал нормально без этого до перезапуска.
Я пытался посетить http://localhost: 5050 /? ключ = xxxxxxx http://0.0.0.0: 5050 /? ключ = xxxxxxx и http://1270.0.0.1: 5050 /? Key = xxxxxxx , ключ взят из ~ / .pgAdmin4.XXXXXXXXXXXXXXXXXXXXXXXX.addr та же проблема.
Я попытался удалить образ приложения docker и восстановить его Тоже.
Может кто-нибудь дать мне знать, что мне не хватает? Шаг за шагом отключение соединений сервера / контейнера / сети и перезапуск будет очень полезным!
Если вам нужна дополнительная информация, дайте мне знать.
Спасибо!