在 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/
当我在 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/