How do I map an Azure File Share as a volume in a Docker Compose file?

Mathias Rönnlund picture Mathias Rönnlund · Jun 20, 2018 · Viewed 7k times · Source

I have so far only found examples on how to create a volume on the host machine, e.g:

version: "3.3"
services:
  mysql:
    image: mysql
    volumes:
       - db-data:/var/lib/mysql/data
volumes:
  db-data:

So this defines a volume named db-data that will physically be stored on the host machine running the container.

Is is possible to makes the db-data volume point to an Azure File Share in an Azure Storage account and how would I specify the needed parameters?

Answer

Nicola Ben picture Nicola Ben · Jun 21, 2018

From CLI you can create with:

docker volume create -d azurefile -o share=myvol --name vol1 

docker run -i -t -v vol1:/data busybox    

In your compose you need to use this skeleton:

volumes:
  myvol:
    driver: azurefile
    driver_opts:
      accountname: ___your__account_name
      accountkey: ___your_account_key
      share: "volumes"
      remotepath: "myvol"

UPDATE:

These options are now deprecated, please follow instruction for CloudStor plugin at: https://docs.docker.com/docker-for-azure/persistent-data-volumes/