Как добавить уже собранный докер-контейнер в docker-compose? - PullRequest
0 голосов
/ 13 июня 2018

У меня есть контейнер с именем "postgres", собранный с помощью простой команды docker, в которой есть настроенный PostgreSQL.Кроме того, у меня есть настройка docker-compose с двумя службами - «api» и «nginx».

Как добавить контейнер «postgres» в мою существующую настройку docker-compose как службу, без перестройки?База данных PostgreSQL настраивается вручную и заполняется данными, поэтому перестройка - это действительно очень плохой вариант.

Я просмотрел документацию docker-compose, но, к сожалению, не нашел способа сделать это без пересборки.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Вы можете сохранить этот контейнер в новом образе, используя фиксацию контейнера Docker и использовать этот вновь созданный образ в вашем docker-compose

docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Однако я предпочитаю создавать изображения с использованиемDockerfiles и скриптов для заполнения моих данных и т. д.

0 голосов
/ 13 июня 2018

К сожалению, это невозможно.

Вы не ссылаетесь на контейнеры в docker-compose, вы используете образы.

Вам необходимо создать том и / или связать его, чтобы сохранитьданные вашей базы данных.

Это связано с тем, что контейнеры не сохраняют данные, если вы заполнили их данными и не сделали привязку или том к ним, вы потеряете все при использовании docker container stop.

Рекомендация:

docker cp

Docker cp скопирует содержимое из контейнера в хост.https://docs.docker.com/engine/reference/commandline/container_cp/

  1. Создайте папку для сохранения всех ваших данных PostgreSQL (например: / home / user / postgre_data /)
  2. Сохраните содержимое ваших данных контейнера PostgreSQL вэта папка (страница postgres концентратора докера для дальнейшей справки:;
  3. Запустите новый контейнер PostgreSQL (той же версии) с привязкой, указывающей на новую папку;

Это сохранит всеваши данные, и вы сможете смонтировать или связать их для использования в docker-compose.

Ссылка на тома docker-compose: https://docs.docker.com/compose/compose-file/#volumes

Ссылка на образ докера postgres: https://hub.docker.com/_/postgres/

Ссылка на объемы и привязные крепления: https://docs.docker.com/storage/bind-mounts/#choosing-the--v-or---mount-flag

...