Всем привет!
Статья для тех кто только вступает на путь контейнеризации и ещё не понимает манул разработчиков, просто хочет запустить образ базы с сохранением её настроек и набором данных, ну и конечно использовать при разработке. Здесь вы не найдёте настройки ямлов (если надо то ознакомьтесь с данным трудом) и заумных разъяснений.
Для тех кто в ТАНКЕ, данный вариант должен использоваться только в целях разработки и тестирования. На проде так не делайте!!!
Упустим момент установки Docker и перейдём к командам (их будет всего 2))), я юзаю Убунту поэтому команды и пути будут под этой ось и в принципе убрав sudo и у вас будет счастье.
Для запуска образа PostgreSQL введите:

sudo docker run --rm --name postgres-dev -p 5432:5432 -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=mypass -e POSTGRES_DB=habrdb -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data -d postgres
, где
1. | --rm | ключ активирует автоматическое удаление контейнера и связанную с ним файловую систему после остановки контейнера. Полезный ключ для экономии дискового пространства |
2. | --name | задает имя контейнера, в нашем случае postgres-dev |
3. | -e POSTGRES_USER | задает name для пользователя Postgres, в нашем случае admin. Если его не задать, то применится имя по умолчанию postgres |
4. | -e POSTGRES_PASSWORD | задает пароль для пользователя Postgres. Обязательный параметр. |
5. | -p 5432:5432 | пробрасывает порт по умолчанию 5432. Первое значение порт на локальной машине (есть смыл изменять если у вас установлен PostgreSQL в системе вне Docker, значит порт 5432 занят.), второй порт внутри контейнера. |
6. | -e POSTGRES_DB | задает имя базы данных |
7. | -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data | ключ создает точку монтирования каталога $HOME/docker/volumes/postgres на вашем ПК к каталогу /var/lib/postgresql/data внутри контейнера. Если ходите чтобы база сохранялась при остановке контейнера. |
8. | -d postgres | задает используемый образ, если не указать версию будет смонтирован последний образ |
Скорее всего вы не захотите админить базу из командной строки, то тогда вам потребуется развернуть графический инструмент управления pgAdmin >>

sudo docker run --rm --name pgadmin-dev -e PGADMIN_DEFAULT_EMAIL=myMail@mail.net -e PGADMIN_DEFAULT_PASSWORD=mypass -p 82:80 -d dpage/pgadmin4
, где
1. | --rm | ключ активирует автоматическое удаление контейнера и связанную с ним файловую систему после остановки контейнера. Полезный ключ для экономии дискового пространства |
2. | --name | задает имя контейнера, в нашем случае pgadmin-dev |
3. | -e PGADMIN_DEFAULT_EMAIL | ваш email или не ваш, под ним вы будите заходить в pgAdmin |
4. | -e PGADMIN_DEFAULT_PASSWORD | ваш пароль, тот же, что вы использовали при запуске Postgres. |
5. | -p 82:80 | пробрасывает порт по умолчанию 82. Первое значение порт на локальной машине (есть смыл изменять если порт 82 занят.), второй порт внутри контейнера. |
6. | -d page/pgadmin4 | образ PgAdmin. |
Далее в браузере переходим по адресу http://localhost:82/
Во вкладке Connection (соединение) введите:
Host name / address - 172.17.0.2 или, если этот IP не подходит, узнайте его с помощью команды: docker inspect posgres-dev от контейнера с Postgres.
Port - 5432 или ваш порт, на который вы запустили контейнер.
Username - по умолчанию при запуске суперпользователь: postgres, если вы не задали переменную POSTGRES_USER.
Password - пароль

Пользуйтесь)