已知問題
- Docker Desktop 目前不支援 IPv6。
Mac 的「活動監視器」回報 Docker 使用的記憶體量是實際使用量的兩倍。這是 MacOS 的錯誤所導致。我們已針對此問題撰寫 詳細報告。
從
.dmg
執行Docker.app
後強制退出.dmg
,可能會導致鯨魚圖示沒有回應、Docker 工作在「活動監視器」中顯示沒有回應,以及某些程序佔用大量 CPU 資源。請重新開機並重新啟動 Docker 以解決這些問題。即使在「設定」中啟用,Docker 在登入後也不會自動啟動。這與 Docker helper、註冊和版本控制的一系列問題有關。
Docker Desktop 在 macOS 10.10 Yosemite 和更高版本中使用
HyperKit
虛擬機監視器 ( https://github.com/docker/hyperkit)。如果您正在開發與HyperKit
衝突的工具,例如 Intel 硬體加速執行管理器 (HAXM),目前的解決方法是不要同時執行它們。您可以在使用 HAXM 時暫時關閉 Docker Desktop 來暫停HyperKit
。這讓您可以繼續使用其他工具,並防止HyperKit
造成干擾。如果您正在使用需要設定
DOCKER_HOST
和DOCKER_CERT_PATH
環境變數的應用程式,例如 Apache Maven,請指定這些變數以透過 Unix sockets 連線到 Docker 執行個體。例如:$ export DOCKER_HOST=unix:///var/run/docker.sock
目錄綁定到容器的效能存在許多問題。尤其是,目前小型區塊的寫入和大目錄的遍歷速度很慢。此外,執行大量目錄操作的容器(例如重複掃描大型目錄樹)可能會效能不佳。這種行為的應用程式包括:
rake
ember build
- Symfony
- Magento
- Zend Framework
- 使用 Composer 在
vendor
資料夾中安裝依賴項的 PHP 應用程式
要解決此行為,您可以將供應商或第三方程式庫目錄放在 Docker 磁碟區中,在繫結掛載外部執行暫時性檔案系統操作,並使用 Unison 或
rsync
等第三方工具在容器目錄和繫結掛載目錄之間同步。我們正積極使用多種不同技術來提升效能。如需深入瞭解,請參閱我們路線圖上的主題。
在原生
arm64
容器中的 Apple 晶片上,較舊版本的libssl
(例如debian:buster
、ubuntu:20.04
和centos:8
)在連線到某些 TLS 伺服器時會發生區段錯誤,例如curl https://dl.yarnpkg.com
。此錯誤已在新版libssl
(例如debian:bullseye
、ubuntu:21.04
和fedora:35
)中修復。如果未安裝 Rosetta 2,某些命令列工具將無法運作。
- 舊版本 1.x 的
docker-compose
。請改用 Compose V2 - 輸入docker compose
。 docker-credential-ecr-login
認證輔助程式。
- 舊版本 1.x 的
某些映像檔不支援 ARM64 架構。您可以新增
--platform linux/amd64
以使用模擬執行(或建置)Intel 映像檔。然而,嘗試在 Apple 晶片機器上以模擬方式執行基於 Intel 的容器可能會當機,因為 qemu 有時無法執行容器。此外,檔案系統變更通知 API (
inotify
) 在 qemu 模擬下無法運作。即使容器在模擬下正確執行,它們也會比原生容器更慢且使用更多記憶體。總之,在基於 Arm 的機器上執行基於 Intel 的容器應僅被視為「盡力而為」。我們建議盡可能在 Apple 晶片機器上執行 arm64 容器,並鼓勵容器作者製作 arm64 或多架構版本的容器。隨著越來越多的映像檔重建以支援多種架構,這個問題應該會隨著時間推移而變得越來越少見。
從容器內部到網際網路的
ping
指令無法如預期般運作。要測試網路,請使用curl
或wget
。請參閱 docker/for-mac#5322