[英]Where is /var/lib/docker on Mac/OS X
在為 Mac 安裝 docker 后,我在我的 Mac 上尋找文件夾/var/lib/docker
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/
但在那里找不到任何東西。 知道它在哪里嗎?
如上述答案中所述,您將在以下位置找到它:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
運行 tty 后,您可以導航到/var/lib/docker
如果您使用的是 Docker for Mac,這里的其他答案已經過時。
這是我如何能夠進入虛擬機。 運行命令:
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”
看到這個答案
使用 Docker for Mac 應用程序時,容器似乎存儲在位於以下位置的 VM 中:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
到 2021 年,Mac 用戶可以輕松地使用已記錄的方法訪問 VM,從而訪問卷。
Rocky Chen找到了一種進入 Mac 虛擬機的方法。 有了這個,您實際上可以檢查著名的/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 中檢查卷即可。 右鍵單擊您想要在本地擁有的文件,然后下載它們。 這么簡單!
第二次更新
自 2021 年 7 月起,Docker Desktop for Mac 宣布我們將能夠直接從 GUI 訪問卷,但僅限於 Pro 和 Team 帳戶。
正如@Dmitriy 所說:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
並且可以使用ctrl a
+ d
來分離屏幕
並使用screen -dr
再次重新附加屏幕(因為如果您再次附加屏幕,終端文本將出現亂碼。)
或者如果你想退出,使用ctrl + a
+ k
,然后選擇y
殺死屏幕。
一些僵屍線程,但正如我剛剛在這里發現的那樣,這是另一種不需要屏幕也不需要弄亂外殼等的解決方案。
從docker volume inspect <vol_name>
列出的路徑docker volume inspect <vol_name>
返回容器的路徑,例如:
"Mountpoint": "/var/lib/docker/volumes/coap_service_db_data/_data"
_data
組件是您在volumes:
設置的路徑的最后一個組件volumes:
使用給定卷的服務部分,例如:
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
我覺得新版本的docker(我的版本是20.10.5)使用socket代替TTY來和虛擬機通信,所以可以用nc命令代替screen命令。
nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock
這個路徑在“Docker for Mac Application”時代之前來自Docker Host(不是來自MacOS),那里有一個VirtualBox VM“默認”,在這個VM中,提到的路徑存在(肯定),現在在“Docker for Mac Application”中”時代有一個 Docker.qcow2 鏡像,它是 qemu 基礎虛擬機。 跳入這個 VM @mik-jagger 方式是可以的(但還有更多)
對於 MacOS,我使用以下步驟:
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
然后,訪問 Portainer:192.168.99.100:9000 或 localhost:9000
Docker 日志不在 MacOS 上的 /var/lib/docker 中。
MacOs用戶可以在該路徑下找到docker日志;
/Users/Barrack.Kenya/Library/Containers/com.docker.docker/Data/log/host
job_name:docker static_configs:
管道階段:
運行:
docker run -it --privileged --pid=host debian nsenter -t 1 -a bash
ls /var/lib/docker
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.