简体   繁体   中英

Accessing Docker Volume content on MacOS

When I do a docker volume inspect <dockerid> on a Mac, I can see the path to the data, this appears as a /var/lib/docker/volumes/<volume name>

On a Mac, this link does not exist, because docker runs on inside a very tiny VM.

I can use screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty to get into the vm and then navigate to the folder to see the volumes.

So got all that, but my question is: How do I link what is in these volumes on my host machine?

I have tried this: docker run -it --volume hello:/hello2 --name access_volumes busybox:latest /bin/sh Where hello is the name of a volume I have created.

I can link a folder on my host machine to the container, but I want to backup the content or edit the content of the Volume from my host machine.

How do I do that?

I don't think you can do it without a container. You need something along the lines of https://docs.docker.com/storage/#backup-restore-or-migrate-data-volumes for backup:

docker run --rm --volume hello:/data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /dbdata

or for modifying:

docker run -d --name access_volume --volume hello:/data busybox
docker cp access_volume:/data local-data
# modify local-data
docker cp local-data access_volume:/data

for example, you create a Volume with a File Docker-Compose.yml:

...

influxdb:
 image: influxdb:latest
 container_name: influxdb
 restart: always
 ports:
   - "8086:8086"
   - "9092:9092"
 volumes:
  - type: volume
    source: vol_influxdb
    target: /var/lib/influxdb

...

You can't find this Volume "vol_influxdb" on your Mac, because it's in the Docker-VM. Start your Mac-Terminal an Enter:

screen /Users/<username>/Library/Containers/com.docker.docker/Data/vms/0/tty 

Now you are in the Docker-VM and you can search your Volume with:

cd /var/lib/docker/volumes/<VolumeName>/_data/

Have you known docker-compose: you can link your folder to the container by volumes you can link like this

volumes:
  - ./your_host_folder:/folder_in_container/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM