已知問題
- Docker Desktop 尚未支援 IPv6。
Mac 活動監視器報告 Docker 使用的記憶體量是實際使用量的兩倍。這是由於 MacOS 中的錯誤導致的。我們已經編寫了 一份詳細的報告 關於此問題。
在從
.dmg
中執行Docker.app
後強制彈出.dmg
會導致鯨魚圖示無響應,Docker 任務在活動監視器中顯示為未響應,以及某些程序消耗大量的 CPU 資源。重新啟動並重啟 Docker 以解決這些問題。即使在 **設定** 中啟用,Docker 也不會在登入後自動啟動。這與 Docker 助手、註冊和版本控制中的一組問題有關。
Docker Desktop 在 macOS 10.10 Yosemite 及更高版本中使用
HyperKit
虛擬機器管理器 ( https://github.com/docker/hyperkit)。如果您使用與HyperKit
衝突的工具進行開發,例如 英特爾硬體加速執行管理器 (HAXM),當前的解決方法是不同時執行它們。您可以透過暫時退出 Docker Desktop 來暫停HyperKit
,同時您使用 HAXM。這使您可以繼續使用其他工具並防止HyperKit
干擾。如果您正在使用諸如 Apache Maven 等工具,這些工具需要
DOCKER_HOST
和DOCKER_CERT_PATH
環境變數的設定,請指定它們以透過 Unix 套接字連線到 Docker 例項。例如$ export DOCKER_HOST=unix:///var/run/docker.sock
繫結到容器中的目錄的效能存在許多問題。特別是,小塊的寫入和大型目錄的遍歷目前速度很慢。此外,執行大量目錄操作的容器(例如對大型目錄樹的重複掃描)可能會遇到效能低下。表現出這種行為的應用程式包括
rake
ember build
- Symfony
- Magento
- Zend Framework
- 使用 Composer 安裝
vendor
資料夾中的依賴項的 PHP 應用程式
作為此行為的解決方法,您可以將供應商或第三方庫目錄放在 Docker 卷中,在繫結掛載之外執行臨時檔案系統操作,並使用 Unison 或
rsync
等第三方工具在容器目錄和繫結掛載的目錄之間同步。我們正在積極使用多種不同的技術來改進效能。要了解更多資訊,請參閱 我們路線圖中的主題。
在原生
arm64
容器中的 Apple 晶片上,debian:buster
、ubuntu:20.04
和centos:8
等舊版本libssl
在連線到某些 TLS 伺服器(例如curl https://dl.yarnpkg.com
)時會發生段錯誤。此錯誤在debian:bullseye
、ubuntu:21.04
和fedora:35
中的libssl
的較新版本中已修復。某些命令列工具在未安裝 Rosetta 2 時無法正常工作。
- 舊版本 1.x 的
docker-compose
。請改用 Compose V2 - 鍵入docker compose
。 docker-credential-ecr-login
憑據助手。
- 舊版本 1.x 的
某些映象不支援 ARM64 架構。您可以新增
--platform linux/amd64
來使用模擬執行(或構建)英特爾映象。但是,嘗試在使用模擬的 Apple 晶片機器上執行基於英特爾的容器可能會崩潰,因為 qemu 有時無法執行容器。此外,檔案系統更改通知 API (
inotify
) 在 qemu 模擬下無法正常工作。即使容器在模擬下正確執行,它們也會比原生等效容器速度更慢並使用更多記憶體。總之,在基於 Arm 的機器上執行基於英特爾的容器應該被視為“盡力而為”。我們建議儘可能在 Apple 晶片機器上執行 arm64 容器,並鼓勵容器作者生成 arm64 或多架構版本的容器。隨著越來越多的映象重建 支援多種架構,這個問題應該會隨著時間的推移而變得不那麼普遍。
容器內部到網際網路的
ping
無法按預期工作。要測試網路,請使用curl
或wget
。請參閱 docker/for-mac#5322。使用者可能偶爾會在 TCP 流半關閉時遇到資料丟失。