SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Список вопросов Печать

Как сделать перенос и переименование проекта docker compose?


Метки: docker docker compose docker volume docker-compose.yml 

Ответы

RemiZOffAlex  Создано: 2025-02-07 08:16:44.283042  Обновлено: 2025-02-07 08:38:30.877628

Останавливаем все контейнеры

docker compose down

Составляем список всех примонтированных томов из docker-compose.yml файла

volumes:
  postgres_data:

Делаем перенос родительской директории

mv source target

Переименовываем сервис с примонтированным томом и временно создаём новый

  postgres:
    image: fedora:41
    volumes:
      - postgres_data:/var/lib/postgresql/data

  postgres2:
    image: postgres:15
    restart: always
    volumes:
        - postgres_data:/var/lib/postgresql/data

Поднимаем новый для создания тома

docker compose run -it postgres /bin/bash

Проверяем список томов

# docker volume ls
DRIVER    VOLUME NAME
local     target_postgres_data
local     source_postgres_data

Создаём временный контейнер для переноса данных

docker run --rm -it \
--volume source_postgres_data:/source \
--volume target_postgres_data:/target \
fedora:41 /bin/bash

Копируем данные

cd /source
cp -av . /target

Меняем обратно сервисы в файле docker-compose.yml

  postgres:
    image: postgres:15
    restart: always
    volumes:
        - postgres_data:/var/lib/postgresql/data

Запускаем проект обратно и проверяем работоспособность

docker compose up -d

Возможно будут интересны и другие вопросы