適用於 Docker Desktop for Mac 的常見問題解答
為什麼我一直收到通知,提示應用程式已更改我的 Desktop 配置?
您收到此通知是因為配置完整性檢查功能檢測到第三方應用程式已更改您的 Docker Desktop 配置。這通常是由於錯誤或缺少符號連結造成的。該通知確保您知道這些更改,以便您可以檢視並修復任何潛在問題,以保持系統可靠性。
開啟通知會彈出一個視窗,其中提供有關檢測到的完整性問題的詳細資訊。
如果您選擇忽略通知,則只有在下次啟動 Docker Desktop 時才會再次顯示。如果您選擇修復您的配置,則不會再收到提示。
如果您想關閉配置完整性檢查通知,請導航至 Docker Desktop 的設定,然後在“常規”選項卡中,清除“自動檢查配置”設定。
如果您對如何進一步改進配置完整性檢查功能有任何反饋,請填寫反饋表單.
什麼是 HyperKit?
HyperKit 是一個建立在 macOS 中 Hypervisor.framework 之上的 hypervisor。它完全在使用者空間執行,沒有任何其他依賴項。
我們使用 HyperKit 來消除對其他 VM 產品(如 Oracle VirtualBox 或 VMWare Fusion)的需求。
HyperKit 的優勢是什麼?
HyperKit 比 VirtualBox 和 VMWare fusion 更輕薄,並且包含的版本針對 Mac 上的 Docker 工作負載進行了定製。
為什麼退出應用程式後,com.docker.vmnetd 仍在執行?
特權輔助程序 com.docker.vmnetd
由 launchd
啟動並在後臺執行。除非 Docker.app
連線到它,否則該程序不會消耗任何資源,因此您可以安全地忽略它。
Docker Desktop 在哪裡儲存 Linux 容器和映象?
Docker Desktop 將 Linux 容器和映象儲存在 Mac 檔案系統中的單個大型“磁碟映象”檔案中。這與 Linux 上的 Docker 不同,Docker 通常將容器和映象儲存在 /var/lib/docker
目錄中。
磁碟映象檔案在哪裡?
要查詢磁碟映象檔案,請從 Docker 儀表板中選擇“設定”,然後從“資源”選項卡中選擇“高階”。
“高階”選項卡顯示磁碟映象的位置。它還顯示磁碟映象的最大尺寸和磁碟映象實際佔用的空間。請注意,其他工具可能會根據檔案最大尺寸來顯示檔案空間使用情況,而不是實際檔案尺寸。
如果檔案太大怎麼辦?
如果磁碟映象檔案太大,您可以
- 將其移動到更大的驅動器
- 刪除不必要的容器和映象
- 減少檔案的最大允許尺寸
如何將檔案移動到更大的驅動器?
要將磁碟映象檔案移動到其他位置
選擇“設定”,然後從“資源”選項卡中選擇“高階”。
在“磁碟映象位置”部分,選擇“瀏覽”併為磁碟映象選擇一個新位置。
選擇“應用並重啟”以使更改生效。
重要
請勿直接在 Finder 中移動檔案,因為這會導致 Docker Desktop 丟失檔案的跟蹤。
如何刪除不必要的容器和映象?
檢查您是否有任何不必要的容器和映象。如果您的客戶端和守護程式 API 正在執行版本 1.25 或更高版本(使用客戶端上的 docker version
命令檢查您的客戶端和守護程式 API 版本),則可以透過執行以下命令檢視詳細的空間使用資訊
$ docker system df -v
或者,要列出映象,請執行
$ docker image ls
要列出容器,請執行
$ docker container ls -a
如果有大量冗餘物件,請執行以下命令
$ docker system prune
此命令會刪除所有已停止的容器、未使用的網路、懸掛的映象和構建快取。
根據磁碟映象檔案的格式,在主機上回收空間可能需要幾分鐘。如果檔名為
Docker.raw
,主機上的空間將在幾秒鐘內回收。Docker.qcow2
,空間將在幾分鐘後由後臺程序釋放。
只有在刪除映象時才會釋放空間。在執行中的容器中刪除檔案時,不會自動釋放空間。要隨時觸發空間回收,請執行以下命令
$ docker run --privileged --pid=host docker/desktop-reclaim-space
請注意,許多工具報告的是檔案最大尺寸,而不是實際檔案尺寸。要從終端查詢主機上檔案的實際尺寸,請執行
$ cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 username staff 64G Dec 13 17:42 Docker.raw
在此示例中,磁碟的實際尺寸為 2333548
KB,而磁碟的最大尺寸為 64
GB。
如何減少檔案的最大尺寸?
要減少磁碟映象檔案最大尺寸
選擇“設定”,然後從“資源”選項卡中選擇“高階”。
“磁碟映象尺寸”部分包含一個滑塊,允許您更改磁碟映象的最大尺寸。調整滑塊以設定較低的限制。
選擇“應用並重啟”。
當您減少最大尺寸時,當前的磁碟映象檔案將被刪除,因此所有容器和映象都將丟失。
如何新增 TLS 證書?
您可以將受信任的證書頒發機構 (CA)(用於驗證登錄檔伺服器證書)和客戶端證書(用於對登錄檔進行身份驗證)新增到 Docker 守護程式。
新增自定義 CA 證書(伺服器端)
所有受信任的 CA(根 CA 或中間 CA)都受支援。Docker Desktop 基於 Mac Keychain 建立所有使用者信任的 CA 的證書捆綁包,並將其附加到 Moby 受信任證書。因此,如果企業 SSL 證書受到主機上使用者的信任,則它也會受到 Docker Desktop 的信任。
要手動新增自定義自簽名證書,首先將其新增到 macOS 金鑰鏈,然後由 Docker Desktop 獲取。以下是一個示例
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
或者,如果您希望將證書僅新增到您自己的本地金鑰鏈(而不是所有使用者),請改為執行以下命令
$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt
另請參閱證書的目錄結構。
注意
您需要在對金鑰鏈或
~/.docker/certs.d
目錄進行任何更改後重啟 Docker Desktop,以使更改生效。
有關如何執行此操作的完整說明,請參閱部落格文章 將自簽名登錄檔證書新增到 Docker 和 Docker Desktop for Mac.
新增客戶端證書
您可以將客戶端證書放在 ~/.docker/certs.d/<MyRegistry>:<Port>/client.cert
和 ~/.docker/certs.d/<MyRegistry>:<Port>/client.key
中。
當 Docker Desktop 應用程式啟動時,它會將您 Mac 上的 ~/.docker/certs.d
資料夾複製到 Moby(Docker Desktop 的 xhyve
虛擬機器)上的 /etc/docker/certs.d
目錄中。
注意
您需要在對金鑰鏈或
~/.docker/certs.d
目錄進行任何更改後重啟 Docker Desktop,以使更改生效。登錄檔不能列為不安全的登錄檔。Docker Desktop 會忽略列在不安全登錄檔下的證書,並且不會發送客戶端證書。諸如
docker run
之類的嘗試從登錄檔中提取的命令會在命令列以及登錄檔上產生錯誤訊息。
證書的目錄結構
如果您有此目錄結構,則無需手動將 CA 證書新增到您的 Mac OS 系統登入中
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── ca.crt
├── client.cert
└── client.key
以下內容進一步說明和解釋了使用自定義證書的配置
/etc/docker/certs.d/ <-- Certificate directory
└── localhost:5000 <-- Hostname:port
├── client.cert <-- Client certificate
├── client.key <-- Client key
└── ca.crt <-- Certificate authority that signed
the registry certificate
只要 CA 證書也存在於您的鑰匙串中,您也可以使用此目錄結構。
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── client.cert
└── client.key
要詳細瞭解如何為登錄檔安裝 CA 根證書以及如何設定用於驗證的客戶端 TLS 證書,請參閱 Docker 引擎主題中的 使用證書驗證儲存庫客戶端。