-v удалил все данные из контейнера Docker - PullRequest
0 голосов
/ 03 ноября 2018

Я сделал образ докера myImage, есть папка: /data Я хочу позволить пользователю редактировать его самостоятельно. Я прочитал, что -v флаг может смонтировать том, поэтому я использовал его следующим образом:

Я запускаю контейнер с этой командой:

docker run -v /my_local_path:/data -it myImage /bin/bash

Но на удивление, docker очистил все файлы в /data в контейнере. Но это не то, что я хочу ... Я хочу, чтобы на самом деле хост мог получить все файлы из /data ...: (

Как я могу это сделать?

1 Ответ

0 голосов
/ 03 ноября 2018

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

Что вам нужно сделать, это поместить файлы в контейнер в папку A (папка в контейнере). Смонтировать папку B (еще одна папка в контейнере). Затем, ПОСЛЕ того, что том смонтирован, переместите файлы из папки A в папку B. Тогда эти файлы будут доступны как для хоста, так и внутри контейнера.

Эту операцию «перемещение файлов» можно выполнить с помощью сценария RUN или ENTRYPOINT в файле Dockerfile.

См. Запустить скрипт в Dockerfile

Извините, я забыл, если вам нужно RUN или ENTRYPOINT (или если любой из них будет работать), но один из них обязательно сделает это.

Я думаю вы хотите ENTRYPOINT, потому что сценарий ENTRYPOINT выполняется ПОСЛЕ создания контейнера. Таким образом, он будет работать после монтирования тома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...