已知問題


  • 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_HOSTDOCKER_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:busterubuntu:20.04centos:8 等舊版本 libssl 在連線到某些 TLS 伺服器(例如 curl https://dl.yarnpkg.com)時會發生段錯誤。此錯誤在 debian:bullseyeubuntu:21.04fedora:35 中的 libssl 的較新版本中已修復。

  • 某些命令列工具在未安裝 Rosetta 2 時無法正常工作。

    • 舊版本 1.x 的 docker-compose。請改用 Compose V2 - 鍵入 docker compose
    • docker-credential-ecr-login 憑據助手。
  • 某些映象不支援 ARM64 架構。您可以新增 --platform linux/amd64 來使用模擬執行(或構建)英特爾映象。

    但是,嘗試在使用模擬的 Apple 晶片機器上執行基於英特爾的容器可能會崩潰,因為 qemu 有時無法執行容器。此外,檔案系統更改通知 API (inotify) 在 qemu 模擬下無法正常工作。即使容器在模擬下正確執行,它們也會比原生等效容器速度更慢並使用更多記憶體。

    總之,在基於 Arm 的機器上執行基於英特爾的容器應該被視為“盡力而為”。我們建議儘可能在 Apple 晶片機器上執行 arm64 容器,並鼓勵容器作者生成 arm64 或多架構版本的容器。隨著越來越多的映象重建 支援多種架構,這個問題應該會隨著時間的推移而變得不那麼普遍。

  • 容器內部到網際網路的 ping 無法按預期工作。要測試網路,請使用 curlwget。請參閱 docker/for-mac#5322

  • 使用者可能偶爾會在 TCP 流半關閉時遇到資料丟失。