Файл пуст с общим томом - PullRequest
1 голос
/ 04 мая 2019

У меня маленькая проблема с докером.Я пытаюсь использовать общий том с моим компьютером.Я вижу файлы на моем компьютере, но они не отображаются в моем контейнере.

Я попытался создать файл в / root моего контейнера (вне общего тома), и я могу видеть файл без каких-либопроблема.Если я сделаю echo test > test.txt (в моем общем томе), содержимое файла будет пустым.

Я выполняю эту команду:

docker run -v "D:\My App:/home/app" -it MyImage /bin/bash

В папке / home / app я вижуфайлы на моем компьютере.Но если я сделаю:

cat /home/app/test.txt

Это говорит мне, что в файле ничего нет.Пока есть текст (файл существует)

Если я создаю файл из своего контейнера, в общем томе я нахожу его на своем компьютере (и он не пустой).Если я создаю файл со своего компьютера, я нахожу его в контейнере, но он пуст, когда я пытаюсь его отобразить.

В настоящее время, когда я делаю кошку test.txt, он ничего не отображает,Это должно отобразить this is a test

1 Ответ

0 голосов
/ 04 мая 2019

Сначала проверьте настройки Docker для Windows:

Shared Drive

Если ваш диск D: \ * не для общего доступа, выне будет много видеть в вашем контейнере.

docker/for-win выпуск 25 указывает на несколько возможных проблем:

Если вы используете Docker Toolbox:

В моем случае Docker Toolbox создал виртуальную машину с именем default в Virtualbox, и я добавил общую папку в виртуальную машину;Virtualbox -> default (VM) -> Settings -> Shared Folders -> Add:

Затем вы можете указать пути как на вашей машине, так и на сопоставленном пути в виртуальной машине, например:

  • 1-е поле - это путь на вашей машине, например:D: \ my \ app
  • Вторым является путь в виртуальной машине, например / my-vm / app
  • Выберите для автоматического монтирования

Другой:

Одной из проблем, с которой я столкнулся при изучении, была попытка смонтировать том в моем контейнере, но затем иметь папку, которая конфликтовала.
Например, я бы сделал мойworkingdir /foo/bar, затем попробуйте также использовать том для /foo/bar/private, НО уже есть папка с именем private в моем начальном монтировании.
Я не вижу ошибок, но я вижу первую папку, а не мою2-й том

Или:

docker/for-win выпуск 2151 : " Тома, смонтированные из экземпляра WSL Linux, не разрешаются в контейнере".
Это относится к" как использовать Docker с WSL".

Последнее, что нам нужно сделать, это настроить все так, чтобы монтировался том Работа.Это сбило меня с толку на некоторое время, потому что проверить это ...

При использовании WSL Docker для Windows ожидает, что вы предоставите пути к томам в формате, который соответствует этому: /c/Users/nick/dev/myapp.

НоWSL так не работает.Вместо этого он использует формат /mnt/c/Users/nick/dev/myapp.
Честно говоря, я думаю, что Docker должен изменить свой путь, чтобы использовать /mnt/c, потому что это более понятно, что происходит, но это обсуждение в другой раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...