LINUX.ORG.RU

Тестовый docker контейнер

 


1

1

Всем привет.

Хочу сделать штуку в контейнере.

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

Правильно ли так сделать:

1) Забэкапить контейнер docker:

docker commit -p 78727078a04 backup_war_docker_container1:13052019
docker save -o backup_war_docker_container.tar war_container

2) Запустить контейнер из образа, созданного на шаге 2:

docker run -it IMAGE ID  /bin/bash

3) Если на боевом контейнере что-то не так, то восстановиться:

docker load -i backup_war_docker_container.tar


Но чтобы ничего не сломать хочу забэкапить, сделать копию контейнера.

Если у тебя стейт в контейнере, то ты уже все сломал.

Deleted ()

ты явно не понимаешь что такое контейнер и даже не исключено, что не отличаешь его от образа (который, к слову, тоже не нужно бэкапить, достаточно сделать новый на его основе )

Dred ★★★★★ ()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от beren

Ты же понимаешь, что запуская контейнер ты по сути создаешь новый ? То есть его состояние заморожено в рамках образа из которого он создается. Разве что ты выносишь часть изменяемых данных наружу (флаг "-v" у команды docker run, например), но это уже врядли твой случай

Dred ★★★★★ ()
Ответ на: комментарий от Dred

По сути мне надо запустить надо запустить ещё один контейнер из образа, на нём проверить, потом на другом, если всё сломалось, то удалить контейнер и запустить из образа ещё раз ?

beren ()
Ответ на: комментарий от beren

типо того, можешь контейнер сразу с флагом "--rm" запускать (обязательно проверяй все флаги по докам, не копируй бездумно), тогда после останова контейнер сам удалится

Dred ★★★★★ ()
Ответ на: комментарий от Dred

внутри контейнера наверно софт не воздух гоняет и вносит изменения куда-нибудь. Стоит задуматься что после изменения внутри контейнера испорченные данные не полетят дальше, это на случай если контейнер не сам по себе.

anonymous ()