Desktop 通用常见问题解答
我可以离线使用 Docker Desktop 吗?
是的,您可以离线使用 Docker Desktop。但是,您无法访问需要活跃互联网连接的功能。此外,在使用 Docker Desktop 离线或在气隙环境中时,任何需要您登录的功能将无法工作。这包括
- 学习中心中的资源
- 拉取或推送镜像到 Docker Hub
- 镜像访问管理
- 静态漏洞扫描
- 在 Docker Dashboard 中查看远程镜像
- 设置开发环境
- 使用BuildKit时的 Docker Build。您可以通过禁用 BuildKit 来解决此问题。运行
DOCKER_BUILDKIT=0 docker build .
以禁用 BuildKit。 - Kubernetes (首次启用 Kubernetes 时会下载镜像)
- 检查更新
- 应用内诊断 (包括自诊断工具)
- 发送使用统计数据
- 当
networkMode
设置为mirrored
时
如何连接到远程 Docker Engine API?
要连接到远程 Engine API,您可能需要为 Docker 客户端和开发工具提供 Engine API 的位置。
Mac 和 Windows WSL 2 用户可以通过 Unix socket 连接到 Docker Engine:unix:///var/run/docker.sock
。
如果您使用像Apache Maven 这样需要配置 DOCKER_HOST
和 DOCKER_CERT_PATH
环境变量的应用程序,请指定这些变量通过 Unix socket 连接到 Docker 实例。
例如
$ export DOCKER_HOST=unix:///var/run/docker.sock
Docker Desktop Windows 用户可以通过命名管道连接到 Docker Engine:npipe:////./pipe/docker_engine
,或者通过此 URL 的 TCP socket:tcp://localhost:2375
。
有关详细信息,请参阅Docker Engine API。
如何从容器连接到主机上的服务?
主机的 IP 地址可能变化,如果没有网络访问则可能没有 IP 地址。建议您连接到特殊的 DNS 名称host.docker.internal
,它解析为主机使用的内部 IP 地址。
有关更多信息和示例,请参阅如何从容器连接到主机上的服务。
我可以将 USB 设备直通到容器吗?
Docker Desktop 不支持直接的 USB 设备直通。但是,您可以使用 USB over IP 将常用 USB 设备连接到 Docker Desktop VM,然后转发到容器。有关更多详细信息,请参阅在 Docker Desktop 中使用 USB/IP。
如何在没有管理员权限的情况下运行 Docker Desktop?
Docker Desktop 仅在安装时需要管理员权限。安装完成后,运行它不需要管理员权限。但是,对于非管理员用户要运行 Docker Desktop,必须使用特定的安装程序标志进行安装,并满足特定先决条件,这些条件因平台而异。
若要在 Mac 上运行 Docker Desktop 而无需管理员权限,请通过命令行安装并传递—user=<userid>
安装程序标志
$ /Applications/Docker.app/Contents/MacOS/install --user=<userid>
然后您可以使用指定的用户 ID 登录到您的机器,并启动 Docker Desktop。
注意
在启动 Docker Desktop 之前,如果
~/Library/Group Containers/group.com.docker/
目录中已存在settings-store.json
文件(或 Docker Desktop 4.34 及更早版本中的settings.json
),则当您选择完成时,会看到一个提示需要管理员权限的完成 Docker Desktop 设置窗口。为避免此情况,请确保在启动应用程序之前删除之前安装留下的settings-store.json
文件(或 Docker Desktop 4.34 及更早版本中的settings.json
)。
注意
如果您使用 WSL 2 后端,请首先确保您满足 WSL 2 的最低所需版本。否则,请先更新 WSL 2。
若要在 Windows 上运行 Docker Desktop 而无需管理员权限,请通过命令行安装并传递—always-run-service
安装程序标志。
$ "Docker Desktop Installer.exe" install —always-run-service