Как создать копию контейнера lxd и перенести его на другой компьютер

Как в docker-compose перезапустить запущенный контейнер с пересборкой

После редактирования Dockerfile или docker-compose.yml файла, например, прообрасывания порта или добавления волюма, изменения не вступают автоматически! Даже если сделать restart контейнера то всё-равно ничего не изменится. Чтобы применить изменения к контейнеру его нужно пересобрать (build).

How to rebuild docker container in docker-compose.yml?

Проще всего сделать это одной командой:

На экран будет выведено что-то типа:

И через несколько секунд контейнер с нужными свойствами будет запущен. Эта команда выполняет несколько действий: пересобирает образ, создаёт новый контейнер на основе нового образа, останавливает старый контейнер, запускает новый контейнер, удаляет старый контейнер.

Обратите внимание, т.к. контейнер будет пересоздан, все изменения в нём не сохранённые во внешние хранилища будут утеряны!

Если нужно будет пересобрать все сервисы, то можно запустить ту же команду без указания сервиса:

Как создать копию контейнера lxd и перенести его на другой компьютер

Достаточно часто при использование виртуализации при помощи контейнеров lxd возникает необходимость переноса контейнеров с компьютера на компьютер. Это можно сделать достаточно просто.

Предположим у вас есть контейнер с именем mycont и его нужно перенести на другой компьютер. Для создания полного бэкапа контейнера как тарбола образа контейнера (image tarball) необходимо сделать следующее:

После этого в текущей директории появится сжатый файл тарбола с очень большим именем файла, типа:

Этот файл нужно перенести на нужный вам компьютер. Для восстановления и создания контейнера из полученного тарбола необходимо выполнить следующие команды::

Где TARBALL-NAME — имя полученного сжатого тарбола, например:

а some-container-name — имя нового контейнера на другой машине.

Как перенести контейнер докера на другой сервер?

Имеем docker контейнер который нужно перенести на другой хост. По сути наша задача сводится с переносу образа на новый хост и запуску контейнера из этого образа.

Смотрим на контейнер

Посмотреть какие тома присоединены к контейнеру можно в разделе «Mounts» в выводе команды:

Сохранение образа. На первом месте куда сохранять, на втором что сохранять.

Копируем тома(volumes). По умолчанию лежат «/var/lib/docker/volumes/». На первом месте указываем куда копировать, на втором что:

Переносим образ и тома на новый хост, можно сделать при помощи «scp». Если порт SSH не стандартный, нужно его указать ключом «-P». Ключ «-P» должен быть на первом месте. Далее указываем что копировать, потом хост куда копировать в формате %имя_пользователя%@%адрес_хоста%:%путь_куда_копировать%. При указании «~» в пути файл скопируется в домашнюю папку пользователя.

По завершении копирования тома нужно разархивировать и закинуть на место(по умолчанию «/var/lib/docker/volumes/»):

Кормим докер нашим образом:

После всех этих процедур докер увидит образ и позволит создать из него контейнер.

Как перенести контейнер докеров с одного компьютера на другой?

Скажем, я запускаю контейнер Docker на своем персональном компьютере, я хочу перенести этот контейнер на мою машину для друзей. Проблема здесь — в контейнере работает бесконечная программа цикла, я не хочу убивать эту программу. Вместо этого я хочу приостановить контейнер, закрепить контейнер, а затем отправить в мою систему друзей.

Это возможно с помощью виртуальной машины. Приостановите виртуальную машину, запишите файлы и отправьте туда, где захотите. Как сделать то же самое в Docker?

Пожалуйста, поправьте меня, если я ошибаюсь — я думаю, что можно приостановить контейнер докеров, а затем переместить этот контейнер на другую машину. Если да, скажите, пожалуйста, как?

Ответ 5

Это сохраняет данные в объемах.

Я пробовал много решений для этого, и это то, что работает для меня:

1. сохранить/сохранить контейнер в новом изображении:

    ++ зафиксировать контейнер:
    # остановка докера
    # docker commit CONTAINER_NAME
    # docker save —output IMAGE_NAME.tar IMAGE_NAME: TAG

ps: «Наш контейнер CONTAINER_NAME имеет смонтированный том в»/var/home «» (вы должны проверить свой контейнер, чтобы указать путь к нему: # docker inspect CONTAINER_NAME)

    ++ сохранить его объем: мы будем использовать образ Ubuntu, чтобы сделать это.
    # Резервное копирование mkdir
    # docker run —rm — -v в полях — от CONTAINER_NAME -v $ /backup: /backup ubuntu bash -c «cd/var/home && tar cvf/backup/volume_backup.tar.»

Теперь, когда вы посмотрите на $ /backup, вы найдете наш том в формате tar.
До сих пор у нас есть изображение conatainer ‘IMAGE_NAME.tar’ и его том ‘volume_backup.tar’.

Изменить каталог данных Docker

Как я могу изменить каталог данных Docker, где docker сохраняет контейнер (или где lxc сохраняет контейнер)? На моем сервере есть ssd и жесткий диск, и я хочу, чтобы контейнер был сохранен на жестком диске. Спасибо

Я считаю, что в этом руководстве вы найдете хорошее объяснение.

Вы можете изменить базовый каталог хранилища Docker (куда направляются контейнер и изображения), используя опцию -g при запуске демона Docker.

Ubuntu / Debian: отредактируйте свой /etc/default/docker файл с -g опция: DOCKER_OPTS=»-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt»

Fedora / Centos: редактировать /etc/sysconfig/docker и добавьте -g опция в переменной other_args: напр. other_args=»-g /var/lib/testdir» , Если есть более одного варианта, убедитесь, что вы заключили их в » «. После перезапуска (перезапуск службы Docker) Docker должен использовать новый каталог.

Использование символической ссылки — это еще один способ изменить хранилище изображений.

Внимание. Эти шаги зависят от того, является ли текущий каталог /var/lib/docker действительным каталогом (а не символической ссылкой на другое местоположение).

1) Стоп докер: service docker stop , Убедитесь, что процесс docker не запущен ps faux

2) Докер двойной проверки действительно не работает. Взгляните на текущий каталог докеров: ls /var/lib/docker/

2б) Сделать резервную копию — tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz

3) Переместить /var/lib/docker каталог для вашего нового раздела: mv /var/lib/docker /mnt/pd0/docker

4) Сделать символическую ссылку: ln -s /mnt/pd0/docker /var/lib/docker

5) Взгляните на структуру каталогов, чтобы убедиться, что она выглядит так, как это делала до mv: ls /var/lib/docker/ (обратите внимание на косую черту

6) Запустите докер обратно service docker start

7) перезапустите ваши контейнеры, разрешите символическую ссылку)

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector