172 похожих чатов

Как можно сохранять изменения из контейнера в примаунченной папке? папка

пробрасывается, но когда делаю изменения из контейнера в этой папке, они не сохраняются. образ собирается из Dockerfile, запускаю через docker-compose, вот такие настройки в них касательно пробрасываемого тома:

Dockerfile
ADD . /code/

docker-compose.yml
volumes:
code:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '.'

33 ответов

23 просмотра

Ты сначала опиши, зачем тебе сохранять изменения в папку на хосте. Ну и реализовано это неправильно

Максим Мартынов
Ты сначала опиши, зачем тебе сохранять изменения в...

Всё просто, хочу каждому контейнеру скормить диск /dev/sdX или nvme, пытаюсь понять последующую зависимость.

Ivan Klimov- Автор вопроса
Максим Мартынов
Ты сначала опиши, зачем тебе сохранять изменения в...

Мне надо из контейнера Django сформировать статику через python manage.py collectstatic, это команда создает папку static в папке проекта, сам проект пробрасывается внутрь контейнера. Так вот после выполнения данной команды, находясь в контейнере я виже, что команда отрабатывает и папка появляется, потом выхожу из контейнера, папки static на хостовой машине в папке проекта нет, захожу в контейнер, папки там тоже нет.

Максим Мартынов
И для чего?

ceph или gluster поднять, утилизировать пространство

Maxim Subbotin
ceph или gluster поднять, утилизировать пространст...

Без privileged режима контейнеры не имеют доступа к /dev

Ivan Klimov
Мне надо из контейнера Django сформировать статику...

А зачем сохранять статику на хост? Почему не билдить ее на этапе сборки образа, и оставлять там?

> папка пробрасывается, но когда делаю изменения из контейнера в этой папке, они не сохраняются. Это утверждение ложное) В приведенном куске docker-compose.yml нет информации о том, как используется volume/mount. Или давай полную информацию или иди читать доку сам.

Максим Мартынов
А зачем сохранять статику на хост? Почему не билди...

Меньше узких мест, проще конструктив, административки меньше. Структура dev#1, контейнеры, dev x - y диски для данных. Контейнер переехал на другой хост, диски новые. Всё что в контейнере работает по своим правилам, а куда писать может быть любым.

Maxim Subbotin
Меньше узких мест, проще конструктив, администрати...

возможно проще отдать дирректория с файловой системой

Maxim Subbotin
Меньше узких мест, проще конструктив, администрати...

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

это уже для dev#1, есть

Maxim Subbotin
это уже для dev#1, есть

Ну и тут ты абстракцию прибиваешь к железу, зачем?

Maxim Subbotin
Меньше узких мест, проще конструктив, администрати...

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

Grek 🇺🇦 G
Ну и тут ты абстракцию прибиваешь к железу, зачем?

Потому что выглядит как "Docker == VM без лишних заморочек"

Maxim Subbotin
Спасибо. Я не говорю о проблеме.

Ну если я правильно понял - то речь о подходе, как сделать) Я мог интерпретировать и неправильно

Ivan Klimov- Автор вопроса
Максим Мартынов
А зачем сохранять статику на хост? Почему не билди...

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

Ivan Klimov- Автор вопроса
Anton Sivatkin
> папка пробрасывается, но когда делаю изменения и...

version: '3.1' services: web: build: . command: bash -c "uwsgi --ini progresscounter_uwsgi.ini --uid www-data --gid www-data" volumes: - code:/code volumes: code: driver: local driver_opts: type: 'none' o: 'bind' device: '.'

Maxim Subbotin
Всё правильно, нормально.😊

К примеру, SAN я отдаю для dev1, где хостяться только данные контейнеров, devXY на хостах которые просто есть. Контейнер может переезжать куда угодно в рамках SANили dev1, где так же, dev1, может быть зеркалом на gluster. Все хосты имеют другие dev. Контейнер же имея доступ к пулу dev своими правилами организует данные.

Ivan Klimov
действительно верно, так будет правильно, благодар...

Убираешь раздел volumes в корне файла. В web в разделе volumes пишешь: - ./myfolder:/code Где ./myfolder - папка на хосте. Все.

Maxim Subbotin
К примеру, SAN я отдаю для dev1, где хостяться тол...

Кроме SAN, есть технология StorageBridgeBay, в рамках общего пула дисков для 2х хостов.

Maxim Subbotin
Кроме SAN, есть технология StorageBridgeBay, в рам...

либо просто полка по SAS подцеплена для 2х хостов, но арбитраж уже на стороне базовой ОС.

Ivan Klimov- Автор вопроса
Maxim Subbotin
К примеру, SAN я отдаю для dev1, где хостяться тол...

ИМХО правильным решением будет разделить организацию работы с дисковым пространством и развертыванием приложений в Docker. Ты знаешь, что при запуске Docker приложение смотрит в определенные директории на хосту, они же у тебя являются примонтированными директориями с /dev/sdX. А чем является /dev/sdX - уже прям отдельный вопрос, Docker про это ничего знать не будет и ему будет норм)

Anton Sivatkin
ИМХО правильным решением будет разделить организац...

хм...мысль верная, подумаю, протестирую, напишу. Спасибо.

Ivan Klimov- Автор вопроса
Максим Мартынов
Убираешь раздел volumes в корне файла. В web в раз...

Не пробрасывается через docker-compose.yml папка на запись чего-то. Вроде элементарный конфиг. Монтирую локальный текущий каталог в докер в два каталога в /code и в /mnt. Если зайти в контейнер, то в /code файлы есть, а в /mnt пусто. При этом если снаружи сделать изменения в файлах и перезапустить контейнер, данные применятся (например можно изменить конфиг Django), но при этом в контейнере будет отображаться старый конфиг, на момент билда образа, а папка /mnt остается пустой. Как разрулить, чтобы на rw папка монтировалась и изменения внесенные в контейнере в примаунчинной папке появлялись на хосте? Dockerfile FROM python:3.10 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code docker-compose.ymal version: '3.1' services: web: build: . command: bash -c "uwsgi --ini mydjango_uwsgi.ini --uid www-data --gid www-data" volumes: - ./:/code - ./:/mnt

Ivan Klimov
Не пробрасывается через docker-compose.yml папка н...

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

Ivan Klimov- Автор вопроса
Максим Мартынов
1. Зачем перезапускать контейнер для того, чтобы у...

Потому, что мне надо чтобы контейнер создал данные в примаунченной папке, он этого не делает. И я решил попробовать еще в одну папку смаунтить посмотреть. Вторая папка для теста, mnt которая. Запускаю контейнер через компоуз в режиме -d, потом подключаюсь к нему в bash черезе docker -it, создаю папку, выхожу из баша, папки на хосте нет, Ubuntu 18.04.3 LTS

Ivan Klimov
Потому, что мне надо чтобы контейнер создал данные...

И не будет делать. Если ты хочешь, чтобы пустая папка наполнялась при запуске контейнера, это нужно делать явно в entrypoint

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта