跳至主要内容

使用 podman-mac-helper 工具从 macOS 上的 Docker 迁移到 Podman

考虑使用 podman-mac-helper 透明地迁移到 macOS 上的 Podman。

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

podman-mac-helper 工具提供了一个兼容层,允许您在 macOS 上使用 Podman 大多数 Docker 命令。该服务将 /var/run/docker 重定向到固定的用户分配的 UNIX 套接字位置。

先决条件

步骤

  1. 设置 podman-mac-helper 服务:在终端中运行命令

    sudo podman-mac-helper install
  2. 重启 Podman 机器:转到 设置 > 资源,并在 Podman 磁贴中,单击.

验证

  1. Docker 套接字是 Podman 套接字的符号链接

    $ ls -la /var/run/docker.sock

    输出指向一个 podman.sock 文件,例如

    /var/run/docker.sock -> /Users/username/.local/share/containers/podman/machine/podman.sock
  2. 当您查询 Docker 套接字时,您会收到来自 Podman 而不是 Docker 的回复。

    例如,此命令输出 Podman 版本而不是 Docker 版本

    $ curl -s --unix-socket /var/run/docker.sock "http://v1.41/info"  | jq -r .ServerVersion
  3. 与 Docker 套接字通信的工具,如 MavenTestcontainers,无需重新配置即可与 Podman 通信。

  4. (可选,如果已安装 docker CLI) docker CLI 上下文设置为默认值 unix:///var/run/docker.sock

    $ docker context list
    NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
    default * moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock
  5. (可选,如果已安装 docker CLI) docker CLI 与 Podman 套接字通信。

    因此,此命令输出 Podman 版本而不是 Docker 版本

    $ docker info --format=json | jq -r .ServerVersion

其他资源