Azure Blob Support

Does Rancher have Azure Blob support for storage?

We are using Azure File Storage as a persistent solution. It’s not as clean as I’d like it to be. There’s no convoy support, so Rancher won’t make volumes for you on stack/service start. You will need to create the volumes as a prerequisite step before starting the container that’s going to use it.

First we install the docker azurefile volume driver on each of the rancher agent hosts. There are a number of ways to do it. We bootstrap this with puppet.

You can get the driver here:

Next we run a very simple “run-once” rancher-catalog entry to initialize the volumes. This runs globally on each of our agent hosts in an environment.

All this does is run the docker volume create command with the right options for you on each host. If you use this image, the share is the VOLUME_NAME prefixed with the Rancher environment name.


  image: leankit/rancher-azurefile-volume
    - /var/run/docker.sock:/var/run/docker.sock
    VOLUME_NAME: ${name}
    VOLUME_GID: 'x${gid}'
    VOLUME_UID: 'x${uid}'
    VOLUME_FILEMODE: 'x${filemode}'
    VOLUME_DIRMODE: 'x${dirmode}'
    VOLUME_NOLOCK: '${nolock}'
  labels: 'true'
    io.rancher.container.start_once: 'true'
    io.rancher.container.hostname_override: container_name
    io.rancher.container.pull_image: always


  name: "AzureFile Volume"
  version: "v0.0.1"
  description: Create an Azure File Share Volume.
  uuid: azurefile-volume:v0.0.1
    - variable: name
      label: Volume Name
      type: string
      required: true
      default: rabbitmq
    - variable: uid
      label: UID
      type: string
      description: UID for owner of mounted files.
      required: true
      default: '0'
    - variable: gid
      label: GID
      type: string
      description: GID for owner of mounted files.
      required: true
      default: '0'
    - variable: filemode
      label: File Mode
      type: string
      description: Mode for mounted files.
      required: true
      default: '0600'
    - variable: dirmode
      label: Directory Mode
      type: string
      description: Mode for directories (executable is important).
      required: true
      default: '0755'
    - variable: nolock
      label: nolock
      type: boolean
      label: nolock mount option
      required: true
      default: true

Once the volume is created globally, we can run the service that’s going to use it
An example docker-compose.yml for a rabbitmq service

  image: rabbitmq:3.6.5
    - 5672:5672/tcp
    - 15672:15672/tcp
    - 25672:25672/tcp
  - rabbitmq:/var/lib/rabbitmq
  volume_driver: azurefile
    RABBITMQ_DEFAULT_USER: "${username}"
    RABBITMQ_DEFAULT_PASS: "${password}"
    RABBITMQ_DEFAULT_VHOST: "/${username}"
    io.rancher.container.hostname_override: container_name
    io.rancher.container.pull_image: always

jgreat! Yes you are great!!

Thanks a lot. I hope to look into this very soon.


Check out SSIS Azure Blob where you can see multiple features of Azure Blob in a detailed manner.
Good Luck