2015-08-10 6 views
1

Насколько я понимаю, Docker виртуализирует систему и загружает определенное изображение вместе с загрузкой и выполнением некоторых других вещей. Поскольку я могу использовать разные ОС с докером, я думаю, что он довольно далеко продвинулся, чтобы обеспечить такую ​​абстракцию.Использование Docker для загрузки изображения с памятью?

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

+0

Я нахожу, что это помогает думать о контейнере Docker как о изолированном рабочем пространстве * в хосте Linux. –

ответ

2

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

Существует не виртуализация, а просто инкапсуляция процессов/ресурсов. Более подробную информацию о архитектуре Docker и ее концепциях вы можете найти в файле documentation.

«Замораживание» будет commit вашего базового изображения, которое вы использовали для run вашего контейнера. Вы можете вернуться к этой фиксации в любой момент времени, используя идентификатор изображения.

+0

Но замораживание основывается только на файловой системе, поэтому в следующий раз, когда я запустим приложение внутри образа докеры, это состояние файловой системы будет основой его запуска. Поэтому я могу, например, запустить базу данных в определенном состоянии, но не могу заморозить контейнер и возобновить его в любое время, поэтому он должен пройти через три секунды для запуска базы данных. –

+2

Docker не имеет понятия сохранения состояний рабочего процесса. Когда контейнер запускается, его процесс всегда создается. – h3nrik

+0

Да. Но воображайте, что было бы наоборот :-) –