Docker Desktop for Mac user manual

预计阅读时间:17分钟

欢迎来到 Docker 桌面! Docker Desktop for Mac 用户手册提供了有关如何配置和管理 Docker Desktop 设置的信息.

有关 Docker Desktop 下载、系统要求和安装说明的信息,请参阅安装 Docker Desktop .

Preferences

Docker Preferences菜单允许您配置 Docker 设置,例如安装、更新、版本通道、Docker Hub 登录等.

选择 Docker 菜单鲸鱼菜单 > 菜单栏中的首选项并配置下述运行时选项.

General

Preferences

General选项卡上,您可以配置何时启动 Docker 并指定其他设置:

  • 登录时启动 Docker Desktop:打开会话时自动启动 Docker Desktop.

  • 在 Time Machine 备份中包含 VM :选择此选项以备份 Docker 桌面虚拟机. 默认情况下禁用此选项.

  • 使用 gRPC FUSE 进行文件共享:清除此复选框以改用旧版 osxfs 文件共享.

  • 发送使用统计信息:Docker Desktop 发送诊断、崩溃报告和使用数据. 此信息有助于 Docker 改进应用程序并对其进行故障排除. 清除复选框以退出.

  • 显示每周提示:显示有关使用 Docker 的有用建议和建议.

  • 启动时打开 Docker Desktop 仪表板:启动Docker 桌面时自动打开仪表板.

  • 使用 Docker Compose V2 :选择此选项以启用docker-compose命令以使用 Docker Compose V2. 有关更多信息,请参阅Docker Compose V2 .

Resources

资源选项卡允许您配置 CPU、内存、磁盘、代理、网络和其他资源.

Advanced

在 Advanced 选项卡上,您可以限制 Docker 可用的资源.

Advanced Preference
settings-advanced

高级设置是:

  • CPUs :默认情况下,Docker Desktop 设置为使用主机上可用处理器数量的一半. 要提高处理能力,请将其设置为更高的数字; 减少,降低数字.

  • 内存:默认情况下,Docker Desktop 设置为使用2 GB 运行时内存,从 Mac 上的总可用内存中分配. 要增加 RAM,请将其设置为更高的数字. 要减少它,请降低数字.

  • Swap :根据需要配置交换文件大小. 默认值为 1 GB.

  • 磁盘映像大小:指定磁盘映像的大小.

  • 磁盘映像位置:指定存储容器和映像的 Linux 卷的位置.

您还可以将磁盘映像移动到其他位置. 如果您尝试将磁盘映像移动到已有映像的位置,则会收到提示,询问您是要使用现有映像还是替换它.

File sharing

使用文件共享允许 Mac 上的本地目录与 Linux 容器共享. 这对于在运行和测试容器中的代码时在主机上的 IDE 中编辑源代码特别有用. 默认情况下/Users/Volume/private/tmp/var/folders目录是共享的. 如果您的项目在此目录之外,则必须将其添加到列表中. 否则,您可能会在运行时收到Mounts deniedcannot start service错误.

文件共享设置为:

  • 添加目录:单击+并导航到要添加的目录.

  • 删除目录:单击要删除的目录旁边的-

  • Apply & Restart使用 Docker 的绑定挂载 ( -v ) 功能使该目录可用于容器.

有关共享文件夹、权限和卷装载的提示

  • 仅与容器共享您需要的目录. 文件共享会带来开销,因为对主机上文件的任何更改都需要通知 Linux VM. 共享太多文件会导致高 CPU 负载和降低文件系统性能.

  • 共享文件夹旨在允许在主机上编辑应用程序代码,同时在容器中执行. 对于缓存目录或数据库等非代码项,如果将它们存储在 Linux VM 中,使用数据卷(命名卷)或数据容器,性能会好得多.

  • 如果您将整个主目录共享到容器中,MacOS 可能会提示您授予 Docker 访问主目录的个人区域的权限,例如提醒或下载.

  • 默认情况下,Mac 文件系统不区分大小写,而 Linux 区分大小写. 在 Linux 上,可以创建 2 个单独的文件: testTest ,而在 Mac 上,这些文件名实际上是指同一个底层文件. 这可能会导致应用程序在 Mac 上正常运行(文件内容共享)但在 Linux 中运行时失败(文件内容不同)的问题. 为避免这种情况,Docker Desktop 坚持将所有共享文件作为原始文件进行访问. 因此,如果创建了一个名为test的文件,它必须以test的形式打开. 尝试打开Test将失败,并出现错误No such file or directory . 同样,一旦创建了名为test的文件,尝试创建第二个名为Test的文件将失败. 有关更多信息,请参阅卷安装需要/Users之外的任何项目目录的文件共享.)

Proxies

Docker Desktop 从 macOS 检测 HTTP/HTTPS 代理设置,并自动将这些传播到 Docker. 例如,如果您将代理设置设置为http://proxy.example.com ,则 Docker 在拉取容器时会使用此代理.

如果要手动配置代理,请打开手动代理配置设置.

但是,您的代理设置不会传播到您启动的容器中. 如果你想为你的容器设置代理设置,你需要为它们定义环境变量,就像你在 Linux 上做的那样,例如:

$ docker run -e HTTP_PROXY=http://proxy.example.com:3128 alpine env

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7edf988b2b5
TERM=xterm
HOME=/root
HTTP_PROXY=http://proxy.example.com:3128

有关为运行的容器设置环境变量的更多信息,请参阅设置环境变量.

Network

You can configure Docker Desktop networking to work on a virtual private network (VPN). Specify a network address translation (NAT) prefix and subnet mask to enable Internet connectivity.

Docker Engine

Docker 引擎页面允许您配置 Docker 守护程序以确定容器的运行方式.

在框中键入 JSON 配置文件以配置守护程序设置. 有关选项的完整列表,请参阅 Docker 引擎dockerd 命令行参考.

单击应用并重新启动以保存您的设置并重新启动 Docker 桌面.

Experimental Features

实验功能页面上,您可以指定是否启用实验功能.

实验功能提供对未来产品功能的早期访问. 这些功能仅用于测试和反馈,因为它们可能会在版本之间更改而不会发出警告,或者可以从未来版本中完全删除. 不得在生产环境中使用实验性功能. Docker 不提供对实验性功能的支持.

Enable the new Apple Virtualization framework

选择Use the new Virtualization framework以允许 Docker Desktop 使用新的virtualization.framework而不是"hypervisor.framework". 首次启用新的虚拟化框架时,请确保重置 Kubernetes 集群.

Enable VirtioFS

Docker Desktop for Mac 允许开发人员使用一种新的实验性文件共享实现,称为virtiofS ; 当前默认是 gRPC-FUSE. virtiofs 被发现可以显着提高 macOS 上的文件共享性能. 有关更多详细信息,请参阅我们的博文 Speed boost 成就在 Docker Desktop 4.6 for Mac 上解锁.

要启用 virtioFS:

  1. 确认您使用的是以下 macOS 版本:
    • macOS 12.2 或更高版本(适用于 Apple Silicon)
    • macOS 12.3 或更高版本(适用于 Intel)
  2. 选择启用 VirtioFS 加速目录共享以启用 virtioFS.

  3. Click 应用并重新启动.

Kubernetes

Docker Desktop 包含一个在您的 Mac 上运行的独立 Kubernetes 服务器,因此您可以测试在 Kubernetes 上部署 Docker 工作负载. 要启用 Kubernetes 支持并安装作为 Docker 容器运行的独立 Kubernetes 实例,请选择启用 Kubernetes .

  • 使用 Docker 命令时,选择显示系统容器(高级)以查看内部容器.

  • 选择重置 Kubernetes 集群以删除所有堆栈和 Kubernetes 资源. 有关更多信息,请参阅Kubernetes .

  • 单击应用并重新启动以使您的更改生效.

Reset

重置和重启选项

在 Docker Desktop Mac 上,"故障排除"菜单中提供了Restart Docker DesktopReset to factory defaults和其他重置选项.

有关重置选项的信息,请参阅日志和故障排除.

Software Updates

软件更新部分会通知您 Docker Desktop 可用的任何更新. 当有新更新时,您可以选择立即下载更新,或单击"发行说明"选项以了解更新版本中包含的内容.

禁用自动检查更新

从 Docker Desktop 4.2.0 开始,所有 Docker 订阅(包括 Docker Personal 和 Docker Pro)的用户都可以使用关闭自动检查更新的选项. 更新到Docker Desktop 4.2.0以开始使用此功能.

通过清除自动检查更新复选框来关闭检查更新. 这会禁用 Docker 菜单中的通知以及 Docker Dashboard 上显示的通知标志. 要手动检查更新,请在 Docker 菜单中选择检查更新选项.

要允许 Docker Desktop 在后台自动下载新更新,请选择始终下载更新. 当更新可用时,这会下载更新版本的 Docker Desktop. 下载更新后,单击应用并重新启动以安装更新. 您可以通过 Docker 菜单或 Docker Dashboard 的"更新"部分执行此操作.

Dashboard

Docker 仪表板使您能够与容器和应用程序进行交互,并直接从您的机器管理应用程序的生命周期. 仪表板 UI 显示所有正在运行、已停止和已启动的容器及其状态. 它提供了一个直观的界面来执行常见的操作来检查和管理容器和现有的 Docker Compose 应用程序. 有关更多信息,请参阅Docker 仪表板.

Add TLS certificates

您可以将受信任的证书颁发机构 (CA)(用于验证注册表服务器证书)和客户端证书(用于向注册表进行身份验证)添加到 Docker 守护程序.

Add custom CA certificates (server side)

支持所有受信任的 CA(根或中间). Docker Desktop 基于 Mac 钥匙串创建所有用户信任的 CA 的证书包,并将其附加到 Moby 信任证书. 因此,如果企业 SSL 证书被主机上的用户信任,它就会被 Docker Desktop 信任.

要手动添加自定义的自签名证书,首先将证书添加到 macOS 钥匙串中,该钥匙串由 Docker Desktop 获取. 这是一个例子:

$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt

或者,如果您希望仅将证书添加到您自己的本地钥匙串(而不是所有用户),请运行以下命令:

$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt

另请参阅证书的目录结构.

注意:在对钥匙串或~/.docker/certs.d目录进行任何更改后,您需要重新启动 Docker Desktop 才能使更改生效.

有关如何执行此操作的完整说明,请参阅博客文章将自签名注册表证书添加到 Docker 和 Docker Desktop for Mac .

Add client certificates

您可以将客户端证书放在~/.docker/certs.d/<MyRegistry>:<Port>/client.cert~/.docker/certs.d/<MyRegistry>:<Port>/client.key中.

当 Docker Desktop 应用程序启动时,它会将 Mac 上的~/.docker/certs.d文件夹复制到 Moby(Docker Desktop xhyve虚拟机)上的/etc/docker/certs.d目录.

  • 在对钥匙串或~/.docker/certs.d目录进行任何更改后,您需要重新启动 Docker Desktop 才能使更改生效.

  • 注册表不能被列为不安全的注册表(请参阅Docker 引擎.Docker Desktop 会忽略不安全注册表下列出的证书,并且不发送客户端证书.尝试从注册表中提取的命令(如docker run )会在命令行上产生错误消息,如以及在注册表上.

Directory structures for certificates

如果您有此目录结构,则无需手动将 CA 证书添加到您的 Mac OS 系统登录:

/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
   ├── ca.crt
   ├── client.cert
   └── client.key

下面进一步说明和解释了带有自定义证书的配置:

/etc/docker/certs.d/        <-- Certificate directory
└── localhost:5000          <-- Hostname:port
   ├── client.cert          <-- Client certificate
   ├── client.key           <-- Client key
   └── ca.crt               <-- Certificate authority that signed
                                the registry certificate

您也可以使用此目录结构,只要 CA 证书也在您的钥匙串中.

/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
    ├── client.cert
    └── client.key

要了解有关如何为注册表安装 CA 根证书以及如何设置客户端 TLS 证书以进行验证的更多信息,请参阅 Docker 引擎主题中的使用证书验证存储库客户端.

Install shell completion

Docker Desktop 附带脚本以启用dockerdocker-compose命令的完成. 完成脚本可以在Docker.app中的Contents/Resources/etc/目录中找到,并且可以安装在 Bash 和 Zsh 中.

Bash

Bash 具有对完成的内置支持要激活 Docker 命令的完成,需要将这些文件复制或符号链接到您的bash_completion.d/目录. 例如,如果您通过Homebrew安装了 bash:

etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.bash-completion $(brew --prefix)/etc/bash_completion.d/docker
ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-compose

将以下内容添加到您的~/.bash_profile

[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

OR

if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

Zsh

在 Zsh 中, 完成系统负责处理事情. 要激活 Docker 命令的完成,需要将这些文件复制或符号链接到您的 Zsh site-functions/目录. 例如,如果您通过Homebrew安装 Zsh:

etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker
ln -s $etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose

Fish-Shell

Fish-shell 还支持 tab补全系统. 要激活 Docker 命令的完成,需要将这些文件复制或符号链接到您的 Fish-shell completions/目录.

创建completions目录:

$ mkdir -p ~/.config/fish/completions

现在从 docker 添加鱼完成.

$ ln -shi /Applications/Docker.app/Contents/Resources/etc/docker.fish-completion ~/.config/fish/completions/docker.fish
$ ln -shi /Applications/Docker.app/Contents/Resources/etc/docker-compose.fish-completion ~/.config/fish/completions/docker-compose.fish

Docker Hub

从 Docker 桌面菜单中选择登录/创建 Docker ID以访问您的Docker Hub帐户. 登录后,您可以直接从 Docker 桌面菜单访问您的 Docker Hub 存储库和组织.

有关更多信息,请参阅以下Docker Hub 主题

Two-factor authentication

Docker Desktop 使您能够使用双重身份验证登录 Docker Hub. 双重身份验证在访问 Docker Hub 帐户时提供了额外的安全层.

在通过 Docker Desktop 登录 Docker Hub 帐户之前,您必须在 Docker Hub 中启用双重身份验证. 有关说明,请参阅为 Docker Hub 启用双重身份验证.

启用两因素身份验证后:

  1. 转到 Docker 桌面菜单,然后选择登录/创建 Docker ID .

  2. 输入您的 Docker ID 和密码,然后单击登录.

  3. 成功登录后,Docker Desktop 会提示您输入验证码. 输入手机中的六位数代码,然后单击验证.

Docker Desktop 2FA

成功通过身份验证后,您可以直接从 Docker 桌面菜单访问您的组织和存储库.

Pause/Resume

从 Docker Desktop 4.2 版本开始,您可以在不主动使用 Docker Desktop 会话时暂停它并节省计算机上的 CPU 资源. 当您暂停 Docker Desktop 时,运行 Docker Engine 的 Linux VM 将暂停,所有容器的当前状态都保存在内存中,并且所有进程都被冻结. 这可以减少 CPU 使用率并帮助您延长笔记本电脑的电池寿命. 您可以通过单击"恢复"选项在需要时恢复 Docker Desktop.

从 Docker 菜单中,选择鲸鱼菜单 >暂停以暂停 Docker 桌面.

Docker context menu

Docker Desktop now displays the paused status on the Docker menu and on the 容器/应用程序, Images, Volumes, and 开发环境 screens on the Docker Dashboard. You can still access the Preferences and the Troubleshoot menu from the Dashboard when you’ve paused Docker Desktop.

选择鲸鱼菜单 > Resume以恢复 Docker 桌面.

Note

当 Docker Desktop 暂停时,在 Docker CLI 中运行任何命令都会自动恢复 Docker Desktop.

Give feedback and get help

要从社区获得帮助、查看当前用户主题、加入或开始讨论,请登录我们的Docker Desktop for Mac 论坛.

To report bugs or problems, log on to Docker Desktop GitHub 上的 Mac 问题, where you can review community reported issues, and file new ones. See 日志和故障排除 for more details.

有关提供对文档的反馈或自行更新的信息,请参阅贡献文档.

Where to go next

mac, tutorial, run, docker, local, machine

by  icopy.site