Как я могу использовать локальный файл на контейнере?
Я пытаюсь создать контейнер для запуска программы. Я использую предварительно сконфигурированный образ и теперь мне нужно запустить программу. Тем не менее, это программа машинного обучения, и мне нужен набор данных с моего компьютера для запуска.
Файл слишком велик для копирования в контейнер. Было бы лучше, если бы программа, запущенная в контейнере, искала набор данных в локальном каталоге моего компьютера, но я не знаю, как я могу это сделать.
Есть ли способ сделать эту ссылку с какой-нибудь командой docker? Или с помощью Dockerfile?
1 ответ
Да, ты можешь это сделать. То, что вы описываете - это монтирование тома хоста. См. https://docs.docker.com/engine/tutorials/dockervolumes/ для документации по этому вопросу.
Например, если я хочу смонтировать папку из моего домашнего каталога в /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, используя.