已知的问题
- 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框架
- 使用
Composer
vendor
在文件夹中安装依赖项的 PHP 应用程序
作为此行为的解决方法,您可以将供应商或第三方库目录放入 Docker 卷中,在绑定安装之外执行临时文件系统操作,并使用 Unison 等第三方工具或
rsync
在容器目录和绑定安装目录之间进行同步。我们正在积极致力于使用多种不同技术来提高性能。要了解更多信息,请参阅 我们路线图上的主题。
在本机
arm64
容器中的 Apple 芯片上,旧版本的libssl
、debian:buster
、ubuntu:20.04
和centos:8
在连接到某些 TLS 服务器(例如curl https://dl.yarnpkg.com
.该错误已在较新版本的libssl
indebian: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。当 TCP 流半关闭时,用户偶尔可能会遇到数据丢失的情况。