使用 podman-mac-helper
工具从 macOS 上的 Docker 迁移到 Podman
考虑使用 podman-mac-helper
透明地迁移到 macOS 上的 Podman。
- 继续使用熟悉的 Docker 命令。
- 利用 macOS 上 Podman 的优势。
- 您的工具,如 Maven 或 Testcontainers,无需重新配置即可与 Podman 通信。
podman-mac-helper
工具提供了一个兼容层,允许您在 macOS 上使用 Podman 大多数 Docker 命令。该服务将 /var/run/docker
重定向到固定的用户分配的 UNIX 套接字位置。
先决条件
- macOS
- Podman
- Docker 服务已 暂停 且 登录时启动 Docker 桌面 已禁用,或 Docker 已 卸载。
步骤
-
设置
podman-mac-helper
服务:在终端中运行命令sudo podman-mac-helper install
-
重启 Podman 机器:转到 设置 > 资源,并在 Podman 磁贴中,单击.
验证
-
Docker 套接字是 Podman 套接字的符号链接
$ ls -la /var/run/docker.sock
输出指向一个
podman.sock
文件,例如/var/run/docker.sock -> /Users/username/.local/share/containers/podman/machine/podman.sock
-
当您查询 Docker 套接字时,您会收到来自 Podman 而不是 Docker 的回复。
例如,此命令输出 Podman 版本而不是 Docker 版本
$ curl -s --unix-socket /var/run/docker.sock "http://v1.41/info" | jq -r .ServerVersion
-
与 Docker 套接字通信的工具,如 Maven 或 Testcontainers,无需重新配置即可与 Podman 通信。
-
(可选,如果已安装
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 -
(可选,如果已安装
docker
CLI)docker
CLI 与 Podman 套接字通信。因此,此命令输出 Podman 版本而不是 Docker 版本
$ docker info --format=json | jq -r .ServerVersion