Папка Windows, смонтированная на том контейнера Docker Linux, не отображает все папки - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть докер-контейнер, созданный из альпийского образа, и я запускаю его на рабочем столе докера в Windows 10 pro. Цель состоит в том, чтобы использовать его в качестве сервера sftp.

Я смонтировал диск D как том в файле docker-compose.

В сценарии точки входа я создаю две папки folder1 и folder2 в контейнере в месте подключенного тома, используя следующий сегмент сценария:

log "Creating folder structure"

if ! [ -d "/home/foo/mountlocation/folder1" ]
then
   `mkdir -p /home/foo/mountlocation/folder1`
   log "folder1 created!"
fi

if ! [ -d "/home/foo/mountlocation/folder2" ]
then
    `mkdir -p /home/mountlocation/folder2`
    log "folder2 created!"
fi

При запуске docker-compose я вижу все эти три оператора журнала, выводимые на консоль.

Обе папки, folder1 и folder2 созданы и отображаются на моем диске D.

Когда я захожу в мой контейнер, cd в папке / home / foo / mountlocation / и с помощью команды ls -a папка 2 отображается как единственное содержимое папки.

Если я создаю папку, folder3, рядом с папкой 1 и папкой 2 на диске D в Windows, то снова отображается ls -a в контейнере, папка 2 и папка 3.

Я могу cd в папку 1, даже если ее нет в списке. Я могу напечатать название текущей папки с помощью команды

printf '%s\n' "${PWD##*/}"

и вывод

folder1.

Когда я захожу в контейнер, папка 1 не отображается.

Мне нужно, чтобы обе папки, созданные скриптом точки входа, были видны.

Как оно может существовать, но не быть видимым? Как сделать так, чтобы при сборке и открытии контейнера обе папки были видны?

1 Ответ

0 голосов
/ 30 апреля 2019

Проблема была решена. Установленная на хосте папка находилась на USB-накопителе, и кажется, что она не очень хорошо работает с докером. Я изменил папку монтирования на жестком диске на хосте, и она отлично работает.

...