在Mac / OS X上/ var / lib / docker在哪里


138

在为/var/lib/dockerMac安装docker之后,我正在Mac上寻找文件夹。

随着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/但是找不到任何东西。知道它在哪里吗?


8
它位于docker实例化以提供必要的Linux环境的vm内部。
larsk's

1
可能是该文件:/Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
基督徒

1
那是虚拟机基础的磁盘映像,是的。但是,如果您想弄混该目录的内容,则需要登录vm本身。您可以在docs.docker.com/v1.8/installation/mac中
2016年

thx,使此文件升高,可与qemu-img调整大小Docker.qcow2 + 5gforums.docker.com/t/…一起使用
基督教徒,

您知道在哪里找到此目录吗?@christian
Jason Xu

Answers:


50

看到这个答案

当使用Docker for Mac Application时,容器似乎存储在位于以下位置的VM中:

〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / Docker.qcow2


51
如果您来自Google,请向下滚动以找到正确的答案。
user1717828

167

如以上答案中所述,您将在以下位置找到它:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

一旦运行了tty,就可以导航到 /var/lib/docker


4
稍作修改(在您的房屋下方,而不是根目录下):“ screen〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty”
pdenti

1
作品!但是,如何从该外壳退出?按Ctrl + d,exit以及logout将无法正常工作。
thomaskonrad

6
您可以使用ctrl + a + d从屏幕分离
Mik jagger

13
分离仍将保持屏幕会话运行。您可以通过运行看到这一点screen -ls。如果您已经分离,请运行screen -X quit。如果您有多个屏幕会话,则需要-S指定会话名称。如果尚未分离,请按ctrl + a,:,q,u,i,t,ENTER。那两个只是在会话中运行screen quit命令。
剂量ntmatter

15
我认为它可能现在位于〜/ Library / Containers / com.docker.docker / Data / vms / 0 / tty中。
理查德·科莱特

57

如果您使用的是Mac的Docker,则此处的其他答案已过时。

这就是我进入虚拟机的方式。运行命令:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

这是默认路径,但是您可能需要先执行以下操作: cd ~/Library/Containers/com.docker.docker/Data/vms

然后ls查看您的VM在哪个目录中,并相应地替换为“ 0”。

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

此页面说明,要退出VM,您需要先按Ctrl-a,然后按d。


不能完全正常工作,因为如果退出VM并再次输入它,将会搞砸shell。
AbstractVoid19

2
这对我不起作用。我最终陷入困境。我经历并杀死了之前的屏幕会话,然后再次尝试。点击回车时,我得到随机字符。如果您再次按下Enter键,则会输入新的随机字符。依此类推
Steig Hallquist,

1
退出屏幕程序中使用CTL-一则CTL- \ /var/lib/docker是在VM你在哪里运行之后screen,所以如ls /var/lib/docker
阿列克谢Martianov

1
我被摆脱杂乱的外壳screen -ls,然后screen -X -S SESSION_NAME quit为每个会话。如果您与ctr-A断开连接,那么您可以与D断开连接,screen -R并获得干净的外壳。
AndreasRiedmüller,

13

就像@Dmitriy所说的那样:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

并可以使用ctrl a+ d分离屏幕

并用于screen -dr重新连接屏幕(因为如果您只是简单地重新连接屏幕,终端文本将显示为乱码。)

参考

或者,如果要退出,请使用ctrl + a+ k,然后选择y取消屏幕。


5

有点像僵尸线程,但正如我刚刚发现的那样,这是不需要屏幕也不弄乱外壳等的另一种解决方案。

列出的路径 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


1

此路径来自“ Docker for Mac应用程序”时代之前的Docker主机(不是来自MacOS),其中VirtualBox VM是“默认”位置,并且此VM中提到的路径存在(肯定),现在是“ Docker for Mac应用程序”时代有一个Docker.qcow2映像,它是qemu基本虚拟机。可以在此VM @ mik-jagger中跳转(但还有更多)


0

我会说该文件:

/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

然后,通过以下地址访问Portainer:192.168.99.100:9000或localhost:9000

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.