已知的问题


  • Docker Desktop 尚不支持 IPv6。
  • Mac 活动监视器报告 Docker 使用的内存量是其实际使用量的两倍。这是由于 MacOS 中的一个错误造成的。我们 就此写了一份详细的报告。

  • .dmg运行后强制弹出Docker.app可能会导致鲸鱼图标无响应,Docker 任务在活动监视器中显示为无响应,并且某些进程会消耗大量 CPU 资源。重新启动并重新启动 Docker 以解决这些问题。

  • 即使在Settings中启用了 Docker,它也不会在登录后自动启动。这与 Docker 助手、注册和版本控制的一系列问题有关。

  • Docker Desktop在 macOS 10.10 Yosemite 及更高版本中使用HyperKit虚拟机管理程序 ( https://github.com/docker/hyperkit )。如果您使用与 冲突的工具HyperKit(例如 Intel 硬件加速执行管理器 (HAXM))进行开发,当前的解决方法是不要同时运行它们。HyperKit在使用 HAXM 时,您可以通过暂时退出 Docker Desktop 来暂停 。这使您可以继续使用其他工具并防止HyperKit 干扰。

  • 如果您正在使用像 Apache Maven这样需要环境变量设置的DOCKER_HOST应用 程序DOCKER_CERT_PATH,请指定这些应用程序以通过 Unix 套接字连接到 Docker 实例。例如:

    $ export DOCKER_HOST=unix:///var/run/docker.sock
    
  • 绑定安装到容器中的目录的性能存在许多问题。特别是小块的写入和大目录的遍历目前很慢。此外,执行大量目录操作(例如重复扫描大型目录树)的容器可能会遇到性能不佳的问题。以这种方式运行的应用程序包括:

    • rake
    • ember build
    • 交响乐团
    • 马根托
    • Zend框架
    • 使用 Composervendor在文件夹中安装依赖项的 PHP 应用程序

    作为此行为的解决方法,您可以将供应商或第三方库目录放入 Docker 卷中,在绑定安装之外执行临时文件系统操作,并使用 Unison 等第三方工具或rsync在容器目录和绑定安装目录之间进行同步。我们正在积极致力于使用多种不同技术来提高性能。要了解更多信息,请参阅 我们路线图上的主题

  • 在本机arm64容器中的 Apple 芯片上,旧版本的libssldebian:busterubuntu:20.04centos:8在连接到某些 TLS 服务器(例如curl https://dl.yarnpkg.com.该错误已在较新版本的libsslin debian:bullseyeubuntu:21.04和中修复fedora:35

  • 未安装 Rosetta 2 时,某些命令行工具无法运行。

    • 旧版本 1.x 的docker-compose.使用 Compose V2 代替类型docker compose
    • 凭证docker-credential-ecr-login助手。
  • 部分镜像不支持ARM64架构。您可以添加--platform linux/amd64使用仿真来运行(或构建)Intel 映像。

    然而,尝试在模拟下的 Apple 芯片机器上运行基于 Intel 的容器可能会崩溃,因为 qemu 有时无法运行容器。此外,文件系统更改通知 API ( inotify) 在 qemu 模拟下不起作用。即使容器在模拟下正确运行,它们也会比本机等效容器更慢并且使用更多内存。

    总之,在基于 Arm 的机器上运行基于 Intel 的容器只能被视为“尽力而为”。我们建议尽可能在 Apple 硅机器上运行 arm64 容器,并鼓励容器作者生产其容器的 arm64 或多架构版本。随着时间的推移,这个问题应该会变得不那么常见,因为越来越多的镜像被重建 以支持多种架构

  • ping从容器内部到互联网无法按预期工作。要测试网络,请使用curlwget。请参阅 docker/for-mac#5322

  • 当 TCP 流半关闭时,用户偶尔可能会遇到数据丢失的情况。