我正在寻找Mac上安装docker for Mac后的/var/lib/docker文件夹。

与码头信息我得到

    Containers: 5
     ...
    Server Version: 1.12.0-rc4
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Backing Filesystem: extfs
     Dirs: 339
     Dirperm1 Supported: true
    ...
    Name: moby
    ID: LUOU:5UHI:JFNI:OQFT:BLKR:YJIC:HHE5:W4LP:YHVP:TT3V:4CB2:6TUS
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    ....

但是我的主机上没有/var/lib/docker目录。

我已经检查了/Users/myuser/Library/Containers/com.docker。Docker /但是在那里什么也找不到。知道它在哪里吗?


当前回答

对于MacOS,我使用以下步骤:

登录docker虚拟机(在MacOS上,docker只能在虚拟机内运行,在我的情况下,我有VirtualBox工具与docker VM): docker-machine ssh 一旦我登录,我需要从docker用户切换到超级用户:sudo -i 现在我可以检查/var/lib/docker目录

其他回答

到2021年,Mac用户可以很容易地使用文档化的方法访问VM,从而访问卷。

Rocky Chen找到了一种方法来进入Mac中的VM。通过这个方法,你可以检查著名的/var/lib/docker/volumes.

Docker运行-it——privilege——pid=host debian nsenter -t 1 -m -u -n -i sh

让我们来看看这个方法:

-it goes for Keep STDIN open even if not attached + Allocate pseudo-TTY --privileged "gives all capabilities to the container. Allows special cases like running docker" . --pid defines to use the host VM namespace. debian the actual image to use. nsenter a debian's tool to run programs in different namespaces -t is the target PID -m mount the provided PID namespace. -u enter the Unix Time Sharing (UTS) namespace. -n enter the provided PID network namespace. -i enter the provided PID IPC namespace.

运行后,转到/var/lib/docker/volumes/,你会找到你的卷。

我的下一个问题是:

如何获取这些卷并将它们备份到主机中?

我很欣赏评论中的想法!

为vscode用户更新

如果你下载了官方Docker扩展,太阳将为你照耀。

只需检查Visual Studio Code中的卷即可。右键单击您想要保存在本地的文件,并下载它们。那么容易!

2日更新

2021年7月,Mac版Docker Desktop宣布,我们将能够直接从GUI访问卷,但仅限于专业和团队帐户。

对于MacOS,我使用以下步骤:

登录docker虚拟机(在MacOS上,docker只能在虚拟机内运行,在我的情况下,我有VirtualBox工具与docker VM): docker-machine ssh 一旦我登录,我需要从docker用户切换到超级用户:sudo -i 现在我可以检查/var/lib/docker目录

我会说这个文件:

/var/run/docker.sock

实际上是:

/Volumes/{DISKNAME}/var/run/docker.sock

如果你运行这个,它应该证明它,只要你运行的是VirtualBox 5.2.8或更高版本,/Volumes的共享设置为自动挂载和永久的,并且你在该版本的VirtualBox上生成了默认的docker-machine:

#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth

然后通过192.168.99.100:9000或localhost:9000访问Portainer

一些什么僵尸线程,但我刚刚发现它在这里是另一种解决方案,不需要屏幕也不混乱shell等。

从docker卷inspect <vol_name>中列出的路径

返回容器的路径,类似于:

“Mountpoint”:“道克/ var / lib / / volumes coap_service_db_data - _data "

_data组件是使用给定卷在服务的volumes:部分中设置的路径的最后一个组件,例如:

卷: db_data:/var/lib/postgresql/data, obvs你的里程会有所不同。

要在mac上实现这一点,我发现最简单的方法是实际启动一个小容器运行,并将主机的根目录挂载到映像中的/docker目录,这使您可以访问主机上使用的卷。

Docker run——rm -it -v /:/ Docker alpine:edge

从这一点你可以CD到音量

cd /var/lib/docker/volumes/coap_service_db_data / _data

如果你在Mac上使用Docker,这里的其他答案就过时了。

下面是我进入VM的方法。执行如下命令:

屏幕~ /图书馆/集装箱/ com.docker.docker /数据/ vm / 0 /电传

这是默认路径,但你可能需要先做: cd ~ /图书馆/集装箱/ com.docker.docker /数据/ vm

然后ls查看您的虚拟机所在的目录,并相应地替换“0”。

当你进入时,你可能只会看到一个空白的屏幕。按“Enter”键。

本页解释了要退出VM,您需要按“Ctrl-a”然后“d”