Ответ 1
Да, ты можешь это сделать. То, что вы описываете, является привязкой. См. Https://docs.docker.com/storage/bind-mounts/ для документации по этому вопросу.
Например, если я хочу смонтировать папку из моего домашнего каталога в /mnt/mydata
в контейнере, я могу сделать:
docker run -v /Users/andy/mydata:/mnt/mydata myimage
Теперь /mnt/mydata
внутри контейнера будет иметь доступ к /Users/andy/mydata
на моем хосте.
Помните, что если вы используете Docker для Mac или Docker для Windows, на хосте есть определенные каталоги, которые разрешены по умолчанию:
Если вы используете Docker Machine на Mac или Windows, ваш демон Docker Engine имеет только ограниченный доступ к вашей файловой системе macOS или Windows. Docker Machine пытается автоматически предоставить общий доступ к вашему каталогу /Users (macOS) или C:\Users (Windows). Таким образом, вы можете монтировать файлы или каталоги в macOS, используя.
Обновление июля 2019 года:
Я обновил ссылку на документацию и назвал, чтобы быть правильным. Эти типы креплений называются "креплениями". Фрагмент о Docker для Mac или Windows больше не появляется в документации, но все равно должен применяться. Я не уверен, почему они удалили его (у моего Docker для Mac все еще есть явный список разрешенных путей монтирования на хосте).