Как получить доступ к файлам хост-ОС из док-контейнера через virtualbox на Windows 10 home
Я установил Docker Toolbox на свой домашний компьютер с Windows 10. Когда я нажимаю на значок быстрого запуска, я получаю оболочку bash и могу выполнить команду
> docker run -it ruby /bin/bash
Это помещает меня в оболочку bash контейнера Ruby с докером. Этот контейнер работает на виртуальной машине VirtualBox, созданной Docker Toolbox. У виртуальной машины была настройка общей папки с:
Folder Path: \\?\C:\Users
Folder Name: c/Users
read-only: unchecked
auto mount: checked
make permanent: checked
Я хотел бы иметь возможность доступа к папке C:\Users\ на моем хосте Windows 10 из моего докер-контейнера через каталог /code внутри контейнера (на котором работает Debian Jessie).
Как я могу настроить свою виртуальную машину или мой Docker-контейнер, чтобы иметь возможность доступа к этой папке из моего Docker-контейнера?
1 ответ
Ключом было выяснить, как выразить общий том, который пересекает границу Windows-VirtualBox и границу VirtualBox-Docker.
Поскольку общая папка между VirtualBox VM и Windows 10 home - это C:\Users, монтирование должно быть где-то под этим деревом папок.
- Я создал в Windows папку с именем C:\Users\Jay\MyApp. Это будет видно внутри VirtualBox VM.
- Затем я решил вызвать папку c/MyApp в контейнере Docker.
Другой ключевой момент заключается в том, что монтирование тома должно начинаться с "//". Итак, полная команда docker:
docker run -it -v //c/Users/Jay/MyApp:/c/MyApp ruby /bin/bash
Я могу отредактировать файл с именем C:\Users\Jay\MyApp\test.rb в Windows, используя хороший текстовый редактор, а затем запустить его в моем контейнере Ruby Linux как
root@ad1e3223e3c7:/# cd c/MyApp
root@ad1e3223e3c7:/c/MyApp# ruby test.rb
Вывод test.rb появляется на консоли контейнера Docker.