在 MacOS 上访问 Docker 卷内容

Accessing Docker Volume content on MacOS

当我在 Mac 上执行 docker volume inspect <dockerid> 时,我可以看到数据的路径,这显示为 /var/lib/docker/volumes/<volume name>

在 Mac 上,此 link 不存在,因为 docker 在非常小的 VM 中运行。

我可以使用 screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty 进入虚拟机,然后导航到文件夹以查看卷。

知道了所有这些,但我的问题是:如何 link 我的主机上的这些卷中有什么?

我试过这个:docker run -it --volume hello:/hello2 --name access_volumes busybox:latest /bin/sh hello 是我创建的卷的名称。

我可以 link 我主机上的文件夹到容器,但我想备份内容或从我的主机编辑卷的内容。

我该怎么做?

你知道吗docker-compose:你可以link你的文件夹到容器volumes 你可以link这样

volumes:
  - ./your_host_folder:/folder_in_container/

我认为没有容器你做不到。 您需要类似于 this documentation 的内容进行备份:

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

或用于修改:

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

例如,您使用文件 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

...

您无法在 Mac 上找到此卷 "vol_influxdb",因为它位于 Docker-VM 中。启动您的 Mac-Terminal 并输入:

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

现在您位于 Docker-VM 中,您可以通过以下方式搜索您的卷:

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