使用 `DOCKER_HOST` 环境变量
考虑使用 `DOCKER_HOST` 环境变量,以便在所有平台上从 Docker 透明地迁移到 Podman 桌面。
- 继续使用熟悉的 Docker 命令。
- 利用 Podman 的优势。
- 您的工具,如 Gradle 或 Testcontainers,无需重新配置即可与 Podman 通信。
先决条件
- Podman
步骤
- Windows
- macOS
- Linux
- 确定 Podman 管道的路径
$ podman machine inspect --format '{{.ConnectionInfo.PodmanPipe.Path}}'
- 将 `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 命令时收到以下错误:**错误:机器的套接字未设置**,则可能需要设置它。
- 确定 Podman 套接字的路径
$ podman machine inspect --format '{{.ConnectionInfo.PodmanSocket.Path}}'
- 将 `DOCKER_HOST` 环境变量设置为 Podman 套接字路径。确保将 `unix://` 方案添加到之前检索到的路径
$ export DOCKER_HOST=unix://<your_podman_socket_location>
- 确定 Podman 套接字的路径
$ podman info --format '{{.Host.RemoteSocket.Path}}'
- 将 `DOCKER_HOST` 环境变量设置为 Podman 套接字路径。确保将 `unix://` 方案添加到之前检索到的路径
$ export DOCKER_HOST=unix://<your_podman_socket_location>
验证
- 您的工具使用 `DOCKER_HOST` 环境变量,如 Gradle 或 Testcontainers,无需重新配置即可与 Podman 通信。