6

При использовании базового образа Dog для PostgreSQL вы выбираете версию PostgreSQL, запускаете контейнер и запускаете его. Большой! Но какой правильный / лучший способ перейти на более новую версию PostgreSQL в будущем?

3 ответа3

4

На данный момент простого решения для этого не существует, но самое простое, что я нашел, это pg_dump старой версии и затем загрузка этого дампа в более новую версию.

На https://github.com/docker-library/postgres/issues/37 обсуждается возможное решение этой проблемы, а также доказательство концепции обновления через докер на https://github. ком /tianon / докер-Postgres-обновление

1

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

В Dockerfile , используя инструкцию FROM:

FROM postgres:9.4

Из командной строки, используя команду run:

$ sudo docker run [OPTIONS] postgres:9.4 [COMMAND] [ARG...]
1

После запуска PostgreSQL в контейнере в течение более года я склонен думать, что базы данных не так уж хороши для контейнерного хранения именно по этим причинам. Контейнеры не предназначены для использования в качестве виртуальных машин, поэтому каждый аспект инструментария будет бороться с вами, если вы попытаетесь рассматривать его как виртуальную машину, которой вы управляете. Контейнеры подобны прославленным корням - изоляция и воспроизводимые среды для конкретного приложения, и чем меньше конфигурация для этого приложения, тем лучше.

Все это говорит о том, что если вы настаиваете на том, что должны запускать PostgreSQL в контейнере, по крайней мере вы должны смонтировать том откуда-то, чтобы поместить файлы данных, чтобы вы могли безопасно уничтожить или изменить образ сервера базы данных (например, PostgreSQL). обновления). Любая конфигурация, которую необходимо выполнить, должна быть сделана в Dockerfile, чтобы обновления также обрабатывались путем редактирования Dockerfile - например, если вы выполняете незначительное обновление, вам может потребоваться всего лишь изменить тег изображения FROM в вашем Dockerfile.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .