diff --git a/engine/context/aci-integration.md b/engine/context/aci-integration.md index 836dbcd521..afcff9b56f 100644 --- a/engine/context/aci-integration.md +++ b/engine/context/aci-integration.md @@ -155,14 +155,17 @@ You can also deploy and manage multi-container applications defined in Compose f You can deploy containers or Compose applications that use persistent data stored in volumes. Azure File Share can be used to support volumes for ACI -containers. +containers. -With an existing Azure File Share, with storage account name `mystorageaccount` +Using an existing Azure File Share with storage account name `mystorageaccount` and file share name `myfileshare`, you can specify a volume in your deployment `run` command as follows: -`docker run -v storageaccount@fileshare:/target/path myimage` and the runtime -container will see the file share content in `/target/path`. +``` +docker run -v storageaccount/fileshare:/target/path myimage +``` + +The runtime container will see the file share content in `/target/path`. In a Compose application, the volume specification must use the following syntax in the Compose file: @@ -181,11 +184,66 @@ volumes: storage_account_name: mystorageaccount ``` -Now, you need to create an Azure storage account and File Share using the Azure +When you deploy a single container or a Compose application, your +Azure login automatically fetches the key to the Azure storage account. + +### Managing Azure volumes + +To create a volume that you can use in containers or Compose applications when +using your ACI Docker context, you can use the `docker volume create` command, +and specify an Azure storage account name and the file share name: + +``` +$ docker --context aci volume create --storage-account mystorageaccount --fileshare test-volume +[+] Running 2/2 + ⠿ mystorageaccount Created 26.2s + ⠿ test-volume Created 0.9s +mystorageaccount/test-volume +``` + +By default, if the storage account does not already exist, this command +creates a new storage account using the Standard LRS as a default SKU, and the +resource group and location associated with you Docker ACI context. + +If you specify an existing storage account, the command creates a new +file share in the exsting account: + +``` +$ docker --context aci volume create --storage-account mystorageaccount --fileshare test-volume2 +[+] Running 2/2 + ⠿ mystorageaccount Use existing 0.7s + ⠿ test-volume2 Created 0.7s +mystorageaccount/test-volume2 +``` + +Alternatively, you can create an Azure storage account or a file share using the Azure portal, or the `az` [command line](https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli). -When you deploy a single container or a Compose application, your -Azure login will automatically fetch the key to the Azure storage account. +You can also list volumes that are available for use in containers or Compose applications: + +``` +$ docker --context aci volume ls +ID DESCRIPTION +mystorageaccount/test-volume Fileshare test-volume in mystorageaccount storage account +mystorageaccount/test-volume2 Fileshare test-volume2 in mystorageaccount storage account +``` + +To delete a volume and the corresponding Azure file share, use the `volume rm` command: + +``` +$ docker --context aci volume rm mystorageaccount/test-volume +mystorageaccount/test-volume +``` + +This permanently deletes the Azure file share and all its data. + +When deleting a volume in Azure, the command checks whether the specified file share +is the only file share available in the storage account. If the storage account is +created with the `docker volume create` command, `docker volume rm` also +deletes the storage account when it does not have any file shares. +If you are using a storage account created without the `docker volume create` command +(through Azure portal or with the `az` command line for example), `docker volume rm` +does not delete the storage account, even when it has zero remaining file shares. ## Using ACI resource groups as namespaces