Как сделать изображение докеры операционной системы хоста, на котором запущен сам докер?

Я начал использовать Docker, и я могу сказать, что это отличная концепция. Пока все идет хорошо. Я установил docker на ubuntu (моя операционная система), играл с изображениями из репозитория и делал новые изображения.

Question:

Я хочу сделать изображение текущей (хост) операционной системы. Как мне добиться этого, используя докер? Я новичок в докеров, поэтому, пожалуйста, игнорируйте любые глупые вещи в моих вопросах, если они есть.

Ответ 1

Я не уверен, что понимаю, почему вы хотели бы сделать такую вещь, но это не главное в вашем вопросе, поэтому вот как создать новый образ Docker из ничего:

Если вы можете создать tar файл вашей текущей операционной системы, то вы можете создать его новый образ докера с помощью команды docker import.

cat my_host_filesystem.tar | docker import - myhost

где myhost - это имя образа докера, а my_host_filesystem.tar - архивный файл вашей файловой системы ОС.

Также взгляните на Docker, запустите изображение с нуля из суперпользователя и этот ответ из stackoverflow.

Если вы хотите узнать больше об этом, поиск docker "from scratch" является хорошей отправной точкой.

Ответ 2

Я занимался обслуживанием сервера, о котором мы молимся, чтобы он не рухнул, и я столкнулся с ситуацией, когда мне пришлось заменить sendmail на postfix.

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

Я попал в эту ветку и из нее нашел способы воспроизвести процедуру.

Ниже приводится описание этого.

Мы начнем с создания tar файла всей файловой системы компьютера (за исключением некоторого ненужного и зависящего от оборудования каталога). Ладно, он может быть не таким идеальным, как я намереваюсь, но мне кажется, что это будет хорошо для меня. попробуйте все, что вам подходит) мы хотим клонировать (как указано @Thomasleveil в этой теме).

$ sudo su -
# cd /
#  tar -cpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /

Затем просто загрузите файл на свой компьютер, импортируйте targz как изображение в докер и инициализируйте контейнер. Обратите внимание, что в примере я поместил дату-месяц-день создания изображения в качестве тега изображения при импорте файла.

$ scp [email protected]:path_to_file/backup.tar.gz .
$ cat backup.tar.gz | docker import - imageName:20190825
$ docker run -t -i imageName:20190825 /bin/bash

ВАЖНО! Эта процедура генерирует полностью идентичное изображение, поэтому очень важно, если вы будете использовать сгенерированное изображение для распределения между разработчиками, тестировщиками и любым другим образом, которое вы удаляете из него, или измените любую ссылку, содержащую ограниченные пароли, ключи или пользователей. чтобы избежать нарушений безопасности.