在 macOS 上,Docker Desktop 是一个非常流行的选择,但它并不是唯一的方案。如果你不想使用 Docker Desktop,或者希望寻找一个更轻量级的替代方案,Colima 是一个不错的选择。Colima 是一个用于 macOS 和 Linux 的容器运行时管理工具,它提供了极简的设置流程,同时支持多种容器运行时,包括 Docker 和 Kubernetes。本文将介绍如何使用 Colima 启用 Docker 和 Docker BuildKit,让你在不依赖 Docker Desktop 的情况下,也能高效地进行容器开发。

一、Colima 简介

Colima 是一个开源项目,旨在为 macOS 和 Linux 提供一个轻量级的容器运行时环境,支持 Intel 和 Apple Silicon 架构。它具有以下特点:

  • 简单易用的 CLI 接口:Colima 提供了简洁的命令行界面,用户可以通过简单的命令快速启动和管理容器。
  • 自动端口转发:无需手动配置端口映射,Colima 会自动处理。
  • 支持多种容器运行时:除了 Docker,还支持 Containerd、Incus 和 Kubernetes。
  • 多实例支持:可以同时运行多个容器实例,满足不同开发需求。

Colima 的 GitHub 仓库地址是 https://github.com/abiosoft/colima,你可以在这里找到更多详细信息。

二、安装 Colima 和 Docker

1. 安装 Colima

Colima 支持多种安装方式,最推荐的方式是通过 Homebrew 安装。打开终端,运行以下命令:

brew install colima

如果你希望使用最新版本,可以安装开发分支:

brew install --HEAD colima

2. 安装 Docker

Colima 依赖 Docker 客户端来与容器运行时交互。通过 Homebrew 安装 Docker:

brew install docker

安装完成后,Docker 客户端会自动配置好环境变量,无需额外设置。

三、启动 Docker 环境

安装完成后,可以通过 Colima 启动一个包含 Docker 和 Kubernetes 的容器环境。运行以下命令:

colima start --kubernetes

这个命令会启动一个虚拟机,其中包含了 Docker 和 Kubernetes 的运行时环境。默认情况下,Colima 会为虚拟机分配 2 个 CPU、2GiB 内存和 100GiB 存储空间。如果需要调整这些参数,可以在启动时通过额外的标志进行设置。例如,启动一个具有 4 个 CPU 和 4GiB 内存的虚拟机:

colima start --cpu 4 --memory 4

你也可以通过 colima stop 停止虚拟机,或者通过 colima delete 删除虚拟机,重新创建一个全新的实例。

四、配置和使用 Docker BuildKit

Docker BuildKit 是一个现代化的构建工具,它提供了更快的构建速度和更多的功能。从 Docker 23.0.0 版本开始,BuildKit 已经默认启用,这意味着你无需通过环境变量(如 DOCKER_BUILDKIT=1)来启用它。但如果你需要使用 docker buildx 提供的高级功能,你可能需要手动安装 docker-buildx 插件。

1. 安装 Docker Buildx

docker-buildx 是一个 Docker 官方提供的扩展插件,用于支持 BuildKit 的高级功能,例如多平台构建和缓存优化。通过 Homebrew 安装 docker-buildx

brew install docker-buildx

安装完成后,你可以立即运行以下命令来验证 docker-buildx 是否正常工作:

docker-buildx version

如果你看到类似以下的输出,说明 docker-buildx 已经成功安装:

Extended build capabilities with BuildKit

2. 配置 Docker Buildx

虽然 docker-buildx 已经安装成功,但默认情况下,docker buildx 命令是不可用的。这是因为 docker buildx 是一个扩展命令,需要通过符号链接将其添加到 Docker 的 CLI 插件目录中。运行以下命令来完成这一步:

mkdir -p $HOME/.docker/cli-plugins
ln -sf /opt/homebrew/bin/docker-buildx $HOME/.docker/cli-plugins/docker-buildx

完成符号链接后,你就可以通过 docker buildx 命令直接使用 BuildKit 的功能了。运行以下命令来验证:

docker buildx version

如果一切正常,你会看到 docker buildx 的版本信息。

3. 使用 BuildKit

现在,你直接在 Dockerfile 里面使用,BuildKit 提供的高级特性,比如

RUN --mount=type=bind,target=/path/to/cache,source=./local/cache \
      /path/to/cache/build.sh

五、总结

通过 Colima 和 Docker Buildx,我们可以在 macOS 上轻松地启用 Docker 和 BuildKit,而无需依赖 Docker Desktop。Colima 提供了一个轻量级的容器运行时环境,支持多种运行时和架构,而 Docker Buildx 则为 Docker 构建提供了强大的功能。这种组合不仅节省了系统资源,还提供了更高的灵活性和扩展性。如果你正在寻找一个轻量级的容器开发环境,Colima 和 Docker Buildx 绝对值得一试。

六、References

Categories: Code

Yu

Ideals are like the stars: we never reach them, but like the mariners of the sea, we chart our course by them.

Leave a Reply

Your email address will not be published. Required fields are marked *