Как получить доступ к файлам хост-ОС из док-контейнера через 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, монтирование должно быть где-то под этим деревом папок.

  1. Я создал в Windows папку с именем C:\Users\Jay\MyApp. Это будет видно внутри VirtualBox VM.
  2. Затем я решил вызвать папку 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.

Другие вопросы по тегам