10

I've been successfully mounting volumes on Windows 10 in various projects recently using the example docker-compose.yml file below. For a new project today I needed to mount a folder from the Z:/ drive (a network mounted drive which appears as \\IP.IP.IP.IP\public\data (Z:) when I navigate to that area in Windows File Explorer.

When I edit the volumes to point to locations on Z: (e.g. in the second docker-compose.yml below), the volumes are not mounted properly and are empty folders when I connect to the container via the CLI.

Any advice on getting the Z: drive folders to mount properly would be great, thanks.

Working docker-compose.yml file:

version: '3.1' services: db: image: mysql:8.0.25 container_name: db restart: always secrets: - mysql_root environment: MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root MYSQL_DATABASE: donuts TZ: "Australia/NSW" volumes: - mysql-data:/var/lib/mysql - ./mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql network_mode: "host" voyager_donuts: container_name: voyager_donuts build: context: . dockerfile: Dockerfile image: voyager_donuts network_mode: "host" environment: TZ: "Australia/NSW" volumes: - c:/Users/MYUSERNAME/data/DonutsCalibration:/voyager_calibration - c:/Users/MYUSERNAME/data/DonutsLog:/voyager_log - c:/Users/MYUSERNAME/data:/voyager_data - c:/Users/MYUSERNAME/data/DonutsReference:/voyager_reference volumes: mysql-data: secrets: mysql_root: file: ./secrets/mysql_root 

Broken volumes docker-compose.yml file:

version: '3.1' services: db: image: mysql:8.0.25 container_name: db restart: always secrets: - mysql_root environment: MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root MYSQL_DATABASE: donuts TZ: "Australia/NSW" volumes: - mysql-data:/var/lib/mysql - ./mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql network_mode: "host" voyager_donuts: container_name: voyager_donuts build: context: . dockerfile: Dockerfile image: voyager_donuts network_mode: "host" environment: TZ: "Australia/NSW" volumes: - z:/RAW/DonutsCalibration:/voyager_calibration - z:/RAW/DonutsLog:/voyager_log - z:/RAW:/voyager_data - z:/RAW/DonutsReference:/voyager_reference volumes: mysql-data: secrets: mysql_root: file: ./secrets/mysql_root 

1 Answer 1

11
+100

According to this forum thread you would have to use something like this to be able to mount network shares:

volumes: foldermix: driver_opts: type: cifs o: username={smbuser},password={smbpass},uid={UID for mount},gid={gid for mount},vers=3.0 device: //Share1/FolderMix 

See also the docker documentation for Samba/CIFS volumes.

Of course, if you really need the indirection to mount the network drive instead of the network share, i.e. because the drive can be mounted to different shares or you do not want to put your credentials into the Docker-Compose file, this will not solve the issue.

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks for this. Adding the samba info etc via driver_opts and pointing to //IP.IP.IP.IP/path/to/shared/folder for the device got it working. Marked as answer
@James you awarded the bounty, but it doesn't look like you actually clicked the checkmark ;)
If you experiement with the driver_opts in docker compose: You might need to delete the volume before each modification (sudo docker volume rm)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.