Есть ли способ использовать bind mount в docker только для одного файла

#docker #containers #docker-volume #persistent-storage

#docker #контейнеры #docker-volume #постоянное хранилище

Вопрос:

Я пытался запустить простой контейнер docker с привязкой, чтобы приложение могло читать и изменять data.json файл (с хост-компьютера). Я поместил data.json /home/usr/project и запустил контейнер с

 docker container run -it -v /home/usr/project:/app container_name main.exe
 

проект содержит 3 файла, остальные 2 файла были включены container build . Когда я пытаюсь запустить контейнер, он выдает сообщение об ошибке о том, что другие 2 файла не найдены. Размещение этих файлов /home/usr/project на локальном хосте решает проблему. Поскольку я хочу, чтобы контейнер только искал data.json , могу ли я каким-либо образом сделать это, не сохраняя другие 2 файла без необходимости в каталоге bind mount

Ответ №1:

Вы можете сопоставить отдельные файлы в docker

docker run -it -v /home/usr/project/data.json:/app/data.json alpine cat /app/data.json

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

docker run -it -v /home/usr/project/data.json:/app/data.json:ro alpine cat /app/data.json

Комментарии:

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