Укороченная версия:
Вы не хотите использовать их в папках виртуальных машин, вам нужен какой-то сетевой диск для ваших данных. Возможно, используйте службу MongoDB или храните файлы MongoDB в учетной записи хранения, где у вас есть гарантии доступа к данным. Чтобы сделать последнее, вы можете, например, использовать драйвер тома Azure Files для Docker (см. https://azure.microsoft.com/en-us/blog/persistent-docker-volumes-with-azure-file-storage/)
Более длинная версия:
Машина, на которой вы создаете папку, является мастером. Это не то место, где развернуты ваши контейнеры, это то место, где находится мастер Docker Swarm. Вот почему вы этого не видите. Вам нужно создать папку на агентах.
Однако вы не знаете, где Swarm собирается развернуть ваш контейнер в кластере, и поэтому нет гарантии, что он будет размещен на виртуальной машине, где находится ваша папка. Даже если вам повезет и при первом развертывании вы попадете на правильную виртуальную машину, нет гарантии, что она будет перезапущена на той же виртуальной машине, если Docker когда-либо потребуется перезапуск.
Вы можете создать папку для каждого агента, но в случае перезапуска контейнера вам не будет гарантирован его перезапуск на той же виртуальной машине, и, следовательно, ваш контейнер не будет иметь доступа к одним и тем же данным. Даже если вы приземлились на той же виртуальной машине, у вас все равно могут возникнуть проблемы, поскольку, если ваша виртуальная машина будет перезапущена, возможно, для восстановления службы с помощью Azure, нет никакой гарантии, что диски виртуальной машины все еще будут там. Диски виртуальных машин недолговечны, и я предполагаю, что вы не хотите, чтобы эти данные ушли.
Во многих случаях лучший вариант - использовать службу для ваших данных, а не запускать ее в своем кластере, например https://docs.microsoft.com/en-us/azure/documentdb/documentdb-protocol-mongodb. Это означает, что кто-то другой отвечает за резервное копирование, доступность, масштабируемость, производительность и т.д. Кластер ACS.
Если вы действительно хотите разместить свой собственный экземпляр MongoDB, вы можете рассмотреть возможность использования драйвера тома, который гарантирует, что ваш контейнер MongoDB всегда имеет доступ к сетевому хранилищу независимо от того, где он развернут. Например, вы можете использовать драйвер тома файлов Azure для Docker (см. https://azure.microsoft.com/en-us/blog/persistent-docker-volumes-with-azure-file-storage/).
person
rgardler
schedule
06.01.2017