我在为Mac安装docker之后在Mac上寻找文件夹/var/lib/docker
。
docker info
我得到了
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/
但却找不到任何内容。知道它在哪里吗?
答案 0 :(得分:120)
如上所述,您可以在以下网址找到:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
运行tty后,您可以导航至/var/lib/docker
答案 1 :(得分:43)
请参阅this answer
使用Docker for Mac Application时,似乎容器存储在位于以下位置的VM中:
〜/库/容器/ com.docker.docker /数据/ com.docker.driver.amd64-LINUX / Docker.qcow2
答案 2 :(得分:25)
如果您使用的是Mac的Docker,则此处的其他答案已过时。
这就是我进入虚拟机的方式。运行命令:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
这是默认路径,但是您可能需要先执行以下操作:
cd ~/Library/Containers/com.docker.docker/Data/vms
然后ls
来查看您的VM在哪个目录中,并相应地替换为“ 0”。
当您进入时,您可能只会看到一个空白屏幕。点击“ Enter”键。
This page解释说,要退出VM,您需要先按Ctrl-a,然后按d。
答案 3 :(得分:22)
到 2021 年,Mac 用户可以轻松地使用已记录的方法访问 VM,从而访问卷。
找到了一种方法 Rocky Chen 可以进入 Mac 中的 VM。有了这个,您实际上可以检查著名的 /var/lib/docker/volumes
。
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
让我们检查一下方法:
运行后,转到 /var/lib/docker/volumes/
,您将找到您的卷。
接下来要解决的问题是:
如何获取这些卷并在主机中对其进行备份?
我很欣赏评论中的想法!
VSCODE 用户更新
如果您下载了官方 Docker 扩展,阳光会为您照耀。
只需在 Visual Studio Code 中检查卷即可。右键单击您想要在本地拥有的文件,然后下载它们。就这么简单!
答案 4 :(得分:4)
有点像僵尸线程,但正如我刚刚发现的那样,这是不需要屏幕也不弄乱外壳等的另一种解决方案。
从docker volume inspect <vol_name>
返回容器的路径,例如:
"Mountpoint": "/var/lib/docker/volumes/coap_service_db_data/_data"
_data
组件是您使用给定的卷在服务的volumes:
部分中设置的路径的最后一个组件,例如:
volumes:
- db_data:/var/lib/postgresql/data
,说明您的里程会有所不同。
要在Mac上到达那里,我发现的最简单的方法是实际启动一个运行的小容器,并将主机的根目录安装到映像中的/docker
目录中,这使您可以访问使用的卷在主机上。
docker run --rm -it -v /:/docker alpine:edge
此时,您可以CD到音量
cd /var/lib/docker/volumes/coap_service_db_data/_data
答案 5 :(得分:2)
我觉得新版docker(我的版本是20.10.5)使用socket代替TTY来和虚拟机通信,所以可以用nc命令代替screen命令。
nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock
答案 6 :(得分:1)
此路径来自Docker Host(不是来自MacOS) 因为“Docker for Mac Application”时代,VirtualBox VM在哪里“默认”并且在这个VM提到的路径中存在(当然),现在在“Docker for Mac Application”时代有一个Docker.qcow2图像,这是qemu基地。 要进入这个VM @ mik-jagger方式是可以的(但还有更多)
答案 7 :(得分:1)
就像@Dmitriy所说的那样:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
,并且可以使用ctrl a
+ d
拆离屏幕
,然后使用screen -dr
重新附加屏幕(因为如果您只是简单地再次附加屏幕,则终端文本将出现乱码。)
或者如果要退出,请使用ctrl + a
+ k
,然后选择y
杀死屏幕。
答案 8 :(得分:0)
我会说文件:
/var/run/docker.sock
实际上是:
/Volumes/{DISKNAME}/var/run/docker.sock
如果你运行它,它应该证明它,只要你运行的VirtualBox 5.2.8或更高版本和/Volumes
的共享设置为自动挂载和永久和你生成默认的docker-machine在那个版本的Virtualbox上:
#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth
然后,访问Portainer:192.168.99.100:9000或localhost:9000
答案 9 :(得分:0)
答案 10 :(得分:-1)
运行:
docker run -it --privileged --pid=host debian nsenter -t 1 -a bash
ls /var/lib/docker