# 在 macOS 上使用 Podman 来运行 Docker 环境

- Link: https://www.ixiqin.com/2022/12/20/using-podman-to-run-on-macos-docker-environment/
- Published: 2022-12-20T06:00:00+08:00
- Author: 白宦成

文章目录

 [Toggle](https://www.ixiqin.com/2022/12/20/using-podman-to-run-on-macos-docker-environment/#)

 * [安装 Podman](https://www.ixiqin.com/2022/12/20/using-podman-to-run-on-macos-docker-environment/#%e5%ae%89%e8%a3%85_podman)
 * [初始化 VM](https://www.ixiqin.com/2022/12/20/using-podman-to-run-on-macos-docker-environment/#%e5%88%9d%e5%a7%8b%e5%8c%96_vm)
 * [(支线任务）使用 Docker cli 来操作 Podman 环境](https://www.ixiqin.com/2022/12/20/using-podman-to-run-on-macos-docker-environment/#%e6%94%af%e7%ba%bf%e4%bb%bb%e5%8a%a1%ef%bc%89%e4%bd%bf%e7%94%a8_docker_cli_%e6%9d%a5%e6%93%8d%e4%bd%9c_podman_%e7%8e%af%e5%a2%83)

[Podman](https://docs.podman.io/en/latest/) 是由 Redhat 开源的 Docker 替代品。在
绝大多数场景下， Podman 可以直接替代 Docker来执行（比如 `alias docker=podman`）。

如果你的 mac 上安装了 homebrew ，你使用 podman 会非常简单。

## 安装 Podman

使用 homebrew 即可安装 Podman，执行 `brew install podman` ，即可完成 podman 的安装。

## 初始化 VM

由于 macOS 并不是一个标准的 Linux Kernel（底层其实是 Unix），因此，你需要单独跑一个
VM 来完成容器环境的创建。和 Docker 不同的是，Podman 使用的是 qemu 来创建一个 VM，
而不是依赖 VirtualBox。

执行 `podman machine init`，即可初始化一个 VM 环境。

![](https://files.ixiqin.com/2023/01/23064629/d2b5ca33bd970f64a6301fa75ae2eb22-25-
1024x211.png)

 初始化完成后，执行 `podman machine start` 启动 VM，即可使用 Podman 命令来操作容器
环境了。

## (支线任务）使用 Docker cli 来操作 Podman 环境

由于 Podman 提供了兼容的实现，因此，你甚至可以使用 docker 的cli 来控制 Podman 创建
的 VM 。在你执行 `podman machine start` 之后，在输出的 Log 当中会提示你，你可以将
环境变量配置好，就可以实现让 Docker 也能识别到你的 Podman VM。

![](https://files.ixiqin.com/2023/01/23064629/d2b5ca33bd970f64a6301fa75ae2eb22-26-
1024x416.png)

这样你就可以使用原生的 docker cli 来控制 podman 的 VM。

不过，我想绝大多数的人可能不会既安装 Podman，又安装 Docker，那你可以选择配置一下
alias，直接使用 docker 命令来操作 Podman

    ```shcb-line-numbers
    alias docker=podman
    ```

![](https://files.ixiqin.com/2023/01/23064629/d2b5ca33bd970f64a6301fa75ae2eb22-27.
png)
