Copier le fichier sur le volume Docker dans le contexte Azure

Nov 24 2020

J'exécute ces commandes docker localement pour copier un fichier sur un volume, cela fonctionne bien:

docker container create --name temp_container -v temp_vol:/target hello-world
docker cp somefile.txt temp_container:/target/.

Maintenant, je veux faire de même, mais avec des volumes situés dans Azure. J'ai une image azureimageque j'ai poussée et elle est située dans Azure, et je dois accéder à partir du conteneur à un volume avec un fichier que j'ai sur mon disque local.

Je peux créer le volume dans un contexte Azure comme ceci:

docker context use azaci
docker volume create test-volume --storage-account mystorageaccount

Mais lorsque j'essaye de copier un fichier sur le volume pointé par un conteneur:

docker context use azaci
docker container create --name temp_container2 -v test-volume:/target azureimage
docker cp somefile.txt temp_container2:/target/.

J'obtiens que les commandes de conteneur et de copie ne peuvent pas être exécutées dans le contexte Azure:

Commande "container" non disponible dans le contexte actuel (azaci), vous pouvez utiliser le contexte "default" pour exécuter cette commande

Commande "cp" non disponible dans le contexte actuel (azaci), vous pouvez utiliser le contexte "par défaut" pour exécuter cette commande

Comment copier un fichier de mon disque local vers un volume dans un contexte Azure? Dois-je d'abord le télécharger sur Azure? Dois-je le copier dans le partage de fichiers?

Réponses

1 CharlesXu Nov 25 2020 at 08:11

Comme je le sais, lorsque vous montez le partage de fichiers Azure sur l'ACI, vous devez télécharger les fichiers dans le partage de fichiers et les fichiers existeront dans l'instance de conteneur que vous montez. Vous pouvez utiliser la commande Azure CLI az storage file uploadou AzCopy pour télécharger les fichiers.

La commande docker cpvise à copier des fichiers / dossiers entre un conteneur et le système de fichiers local. Mais le partage de fichiers se trouve dans le stockage Azure, pas local. Et le conteneur est également dans Azure ACI.