跳至主要内容

使用 `DOCKER_HOST` 环境变量

考虑使用 `DOCKER_HOST` 环境变量,以便在所有平台上从 Docker 透明地迁移到 Podman 桌面。

  • 继续使用熟悉的 Docker 命令。
  • 利用 Podman 的优势。
  • 您的工具,如 GradleTestcontainers,无需重新配置即可与 Podman 通信。

先决条件

  • Podman

步骤

  1. 确定 Podman 管道的路径
$ podman machine inspect --format '{{.ConnectionInfo.PodmanPipe.Path}}'
  1. 将 `DOCKER_HOST` 环境变量设置为 Podman 管道路径。您需要将反斜杠替换为正斜杠,并将 `npipe://` 方案添加到之前检索到的路径

示例

prefixpodman-pipe

npipe:////./pipe/podman-machine-default

根据您的首选终端模拟器,设置会话级环境变量的命令略有不同

cmd - 命令提示符
set DOCKER_HOST=npipe://<inspect_command_output>
Git Bash
export DOCKER_HOST=npipe://<inspect_command_output>
Powershell

不要漏掉值上的引号,否则 powershell 会将它解释为单独的命令,而不是值。

$env:DOCKER_HOST="npipe://<inspect_command_output>"

理想情况下,您应该在系统或用户级环境变量中设置 `DOCKER_HOST`(甚至可以将其加载到您选择的 CL 模拟器初始化脚本中)

注意:在 Windows 上,设置 `DOCKER_HOST` 环境变量不是必需的,因为 Podman 也监听默认的 `docker_engine` 管道。但是,如果您在尝试使用 podman compose 命令时收到以下错误:**错误:机器的套接字未设置**,则可能需要设置它。

验证

  • 您的工具使用 `DOCKER_HOST` 环境变量,如 GradleTestcontainers,无需重新配置即可与 Podman 通信。