При запуске контейнера skillbox-postgres способом:
docker run --name skillbox-postgres --rm -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e PGDATA=/var/lib/postgresql/data/pgdata -v /tmp:/var/lib/postgresql/data -p 5432:5432 -it postgres
есть небольшая проблема, после перезагрузки компа все базы, таблицы и юзеры пропадают, и на следующий день приходится всё восстанавливать. Мелочь, а неприятно! Хотя может быть это я по недостатку опыта работы с докер контейнерами не знаю как сохранять результаты своей деятельности. Поэтому пошел самым простым путём - затянуть к себе на комп образ POSTGRES - и все опыты уже проводить на нём.
Проверяем наличие этого образа: docker images (там должен находиться образ с именем postgres, как оказалось я свой образ скачал еще 4 месяца назад и по идее, первый пункт можно не выполнять...)
Теперь этот контейнер нужно запустить...
В качестве ответа должна вернуться длинная строчка из цифр и букв....
Опция -d говорит о том что это (daemon, контейнер выполняется в фоновом режиме). Чтобы посмотреть, что контейнер запущен выполнить команду:
docker ps
Которая выведет сокращенный id-контейнера и его статус:
Чтобы войти в контейнер нужно выполнить команду:
После чего можно запустить psql -U postgres и совершать необходимые операции с базами данных, пользователями и таблицами. Сразу же создам тестового пользователя, базу. Командой \du можно посмотреть пользователей (dir users), а командой \l (маленькая L) вывести список баз данных.
Ну вот вроде бы всё готово к запуску flask-сервера и загрузке данных... Пробую:
Что там в БД?! Создам новое подключение к этой базе данных:
Ну вот, всё прекрасно, новые таблицы появились и наполнились нужными мне данными, все красиво. Остался последний тест - что произойдет после перезагрузки компа!? Все программы закрываю и ...
REBOOOOOOOOOTING......
Перезагрузил комп, пытаюсь запустить контейнер тем же способом (docker run -d --name postgresCont -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres) и мне система говорит, мол ты батенька уже создал контейнер с подобными параметрами вот и запускай уже созданный контейнер (по крайней мере я так понял это сообщение)
Таааак, а как это сделать?! Снова идем в "гугол"...
Похоже ключик -it тут лишний и докер его не понимает, достаточно просто ввести docker start <container_id> :
открываю в консоли psql и смотрю свои базы и таблицы, всё на месте, можно продолжать работу:
Ну вот, так-то лучше...
Ну а у меня на этом всё...