已知問題
Mac 的「活動監視器」顯示 Docker 使用的記憶體是實際用量的兩倍。這是由於 macOS 的一個 [錯誤 (bug)] (https://docs.google.com/document/d/17ZiQC1Tp9iH320K-uqVLyiJmk4DHJ3c4zgQetJiKYQM/edit?usp=sharing) 所致。
在執行
Docker.app後強制退出.dmg可能會導致鯨魚圖示無回應、活動監視器中顯示 Docker 任務無回應,以及部分行程佔用大量 CPU 資源。請重新開機並重啟 Docker 以解決這些問題。Docker Desktop 在 macOS 10.10 Yosemite 及更高版本中使用
HyperKithypervisor (https://github.com/docker/hyperkit)。如果您開發使用的工具與HyperKit衝突(例如 Intel 硬體加速執行管理員 (HAXM)),目前的暫時解決方法是不要同時執行它們。您可以在使用 HAXM 時暫時關閉 Docker Desktop 以暫停HyperKit。這讓您可以繼續使用其他工具,並防止HyperKit產生干擾。如果您正在使用像 Apache Maven 這樣預期會有
DOCKER_HOST和DOCKER_CERT_PATH環境變數設定的應用程式,請指定這些變數以透過 Unix sockets 連接至 Docker 實例。例如:$ export DOCKER_HOST=unix:///var/run/docker.sock
當未安裝 Rosetta 2 時,某些命令列工具將無法運作。
- 舊版 1.x 的
docker-compose。請改用 Compose V2——輸入docker compose。 docker-credential-ecr-login憑證輔助工具。
- 舊版 1.x 的
有些映像檔不支援 ARM64 架構。您可以加入
--platform linux/amd64,透過模擬方式來執行(或建置)Intel 映像檔。然而,在 Apple Silicon 機器上透過模擬執行基於 Intel 的容器可能會崩潰,因為 QEMU 有時無法執行該容器。此外,檔案系統變更通知 API (
inotify) 在 QEMU 模擬下無法運作。即使容器在模擬下能正常運作,它們的速度也會變慢且比原生版本佔用更多記憶體。總結來說,在 Arm 架構機器上執行基於 Intel 的容器應僅視為「盡力而為」。我們建議盡可能在 Apple Silicon 機器上執行
arm64容器,並鼓勵容器作者製作arm64或多架構 (multi-arch) 版本的容器。隨著越來越多映像檔被重新建置以 支援多種架構,此問題將會逐漸減少。當 TCP 資料流處於半關閉 (half-closed) 狀態時,使用者偶爾可能會遇到資料遺失的問題。