使用Docker for Mac访问Docker卷Mountpoint

vin*_*ron 6 docker

我正在使用Docker for mac,我想找到Docker创建的卷的位置.

# Create volume
docker volume create --name volume-name

# Create container binding this volume
docker run -dti -v volume-name:/data --name deb debian:jessie

# Create a file in container:/data
docker exec -ti deb touch /data/test.txt

# Find the Mountpoint
docker volume inspect volume-name
# Get :
# [
#     {
#         "Name": "volume-name",
#         "Driver": "local",
#         "Mountpoint": "/var/lib/docker/volumes/volume-name/_data",
#         "Labels": {},
#         "Scope": "local"
#     }
# ]
Run Code Online (Sandbox Code Playgroud)

当我在Linux上使用Docker时,我可以运行

ls /var/lib/docker/volumes/volume-name/_data
Run Code Online (Sandbox Code Playgroud)

并看到该test.txt文件

但是,在macOs上我不知道在哪里可以找到这个Mountpoint.

我发现这篇文章(Docker卷挂载不存在)但作者似乎使用boot2docker而我不是.

docker-machine ssh default
# Host does not exist: "default"
Run Code Online (Sandbox Code Playgroud)

有人可以帮我在使用Docker for Mac的 macOs上找到这个Mountpoint

vin*_*ron 10

我终于找到了使用docker for mac访问linux虚拟机的解决方案

sudo screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
cd /var/lib/docker/volumes/volume-name/_data
mv test.txt /Users/path/to/destination
Run Code Online (Sandbox Code Playgroud)

默认情况下,某些目录是共享的(/ Users,/ Volumes,...),然后我可以将数据卷目录从vm移动到我的mac.

  • 不知道从哪个版本的docker for mac开始,但是由于我正在运行版本18.06.1-ce-mac73,我需要执行sudo屏幕〜/ Library / Containers / com.docker.docker / Data / vms / 0 / tty ` (4认同)