LINUX.ORG.RU
ФорумAdmin

docker сохранение данных

 


1

1

Всем привет.

Подскажите пожалуйста.
1)
Хранение данных в контейнере, только:
Первый: монтирование папки из хост системы внутрь контейнера как тома (volume).
Второй (канонический, на котором настаивает докер): это использование data volume контейнеров

но я бы хотел без монтирования папки. Просто чтобы сохранялось в контейнере. Как же мне сохранять конфиги в nginx к примеру? каждый раз коммит делать?

2)
Делать клон контейнеров можно только с помощью коммитов?


у докера ограничение в 128 слоев вроде, так что если будет много изменений это не подойдет, я бы использовал -v /opt:/opt и не мучался.

Novell-ch ★★★★★
()

Просто чтобы сохранялось в контейнере. Как же мне сохранять конфиги в nginx к примеру? каждый раз коммит делать?

Не делай коммит никогда, это неправильно. Используй докерфайлы. И при изменении конфига (хотя зачем, конфиг легче тоже как volume смонтировать) пересобирай образ.

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

плюс ещё хотел спросить, можно ли создать образ с нуля или в любом случае надо брать какой то образ за основу?

carter
() автор топика

1)Хранение данных в контейнере

Не правильно. Не кошерно :)

2) Делать клон контейнеров можно только с помощью коммитов?

Для чего тебе клон контейнера ?

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

почему не надо делать коммит?

Ты можешь его делать, просто он изменит только твой локальный образ.

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

Потому, что невозможно поддерживать образы собранные коммитом. Это непрозрачно. В докерфайле всё прозрачно. Можешь ещё про автоматическиее билды образов из в докерхабе почитать.

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

Можешь с нуля собрать. Образ это tar-ахрив всего-навсего. Но зачем собирать с нуля?

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

клон и далее на него сделать изменения и сохранить)

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

Через год нашли уязвимость в какой-нибудь библиотеке. Твои действия?

Мои - запустить docker build . ничего не меняя. Образ соберётся сам из более свежего базового.

Короче, докерфайлы это docker way. Прими это как данность. Если не веришь мне посмотри на люой оффициальный образ чего либо.

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

Зачем тебе этим заниматься? Мусть мейнтейнеры образа об этом думают.

Представь ситуцию, что у тебя есть несколько образов. Например с боевой и тестовой версией приложения. Для обновления какого-нибудь системного glibc ты будешь обновлять вручную КАЖДЫЙ образ?

В моём случае, ничего обновлять не надо. Просто пересобрать по готовому сценарию. Почему такое неприятие механизма, который советуют на официальном сайте в документации?

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

я ж не против) хотел понять почему) теперь понимаю, спасибо!

carter
() автор топика
Ответ на: комментарий от generator

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

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

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

нет, если я выключу контейнер, а потом опять запущу... он теряет все изменения.

Это докер, детка, да. Перечитай туториал еще раз, он сам не прочитается.

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

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

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

я читал и знаю, что докер именно так и должен работать.

можно ли так сделать или нет.

Ответ же очевиден. Но если хочется и дальше выставлять себя дурачком, то пожалуйста.

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

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

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

Не должно такого быть:

$ docker run -d --name for_lor nginx
04c0cd54f82fec3c22c22680a87d3f3602751a6fc32d5d3174e607fe5d4d8111
$ docker exec -it for_lor /bin/bash
root@04c0cd54f82f:/# echo "ku-ku" > /persist
root@04c0cd54f82f:/# exit
$ docker kill for_lor 
for_lor
$ docker start for_lor 
for_lor
$ docker exec -it for_lor /bin/bash
root@04c0cd54f82f:/# cat /persist 
ku-ku
root@04c0cd54f82f:/# exit
$ 

generator ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.