簡體   English   中英

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

[英]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

讓我們檢查一下方法:

  • -即使未連接也保持標准輸入打開 + 分配偽 TTY
  • --privileged“給出了所有功能的容器。允許特殊情況下,像跑步泊塢窗”。
  • --pid定義使用主機 VM 命名空間。
  • debian要使用的實際映像。
  • nsenter一個debian 的工具來在不同的命名空間中運行程序
  • -t是目標PID
  • -m掛載提供的 PID 命名空間。
  • -u進入 Unix 時間共享 (UTS) 命名空間。
  • -n輸入提供的 PID 網絡命名空間。
  • -i輸入提供的 PID IPC 命名空間。

運行后,轉到/var/lib/docker/volumes/ ,您將找到您的卷。

我要解決的下一個問題是:

如何獲取這些卷並在主機中備份它們?

我很欣賞評論中的想法!

VSCODE 用戶更新

如果你下載了官方 Docker 擴展,陽光會為你閃耀。

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 for Mac 已將其移至 UI 元素,您可以在此處看到。 單擊那個表示 CLI 的按鈕將啟動一個終端,您可以使用它來瀏覽 docker 文件系統。 Docker CLI 按鈕

我覺得新版本的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,我使用以下步驟:

  1. 登錄到 docker 虛擬機(在 MacOS 上 docker 只能在虛擬機內部運行,在我的例子中,我有帶有 docker VM 的 VirtualBox 工具): docker-machine ssh
  2. 登錄后,我需要從docker用戶切換到超級用戶: sudo -i
  3. 現在我可以檢查/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 labels: job: dockerlogs path : (請輸入路徑)

    管道階段:

    • docker:{}

運行:

docker run -it --privileged --pid=host debian nsenter -t 1 -a bash
ls /var/lib/docker

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM