如何在 MacOS 上不使用 Docker Desktop 使用 Docker
前言
我认为很多大型软件团队都对 Docker Desktop 的 Docker许可变更感到困惑。我知道这对我来说很震惊,因为我之前所在的公司团队规模比整个组织还要大。Docker Desktop 的设置流程对于大多数用户来说都极其简单,可以配置容器。
我目前公司的方向是迁移到Podman,别误会,这没问题,而且作为 Docker Desktop 的快速替代品确实有效。然而,我发现它需要进行大量繁琐的更改和额外的设置,最终我很难让 AWS SAM 正常工作,而这正是我的主要目标。它也并没有完全达到我所宣传的“Docker 替代品”的水平。
值得注意的是,许可变更仅影响 Docker Desktop 产品,CLI 界面对所有用户仍然免费。
指示
唯一的先决条件是 Homebrew,如果您尚未安装,您可以在其页面上找到说明。
首先,您需要安装 Docker 和凭证助手。凭证助手允许您使用 macOS Keychain 而不是 Docker Desktop 作为远程容器仓库的凭证存储。
brew install docker docker-credential-helper
稍后您可能会遇到 Docker CLI 抛出“docker-credential-desktop 未安装”的错误,这是由于配置错误(可能是由于先前安装的 Docker Desktop 导致的)。您可以通过执行以下操作来纠正此问题。
nano ~/.docker/config.json
{
"auths": {},
"credsStore": "osxkeychain",
"currentContext": "colima"
}
您的当前上下文可能尚未设置为科利马,但是,需要更新的重要内容是credStore
。
接下来,我们需要安装 Colima。Colima 是一个支持 Docker(和 containerd)的容器运行时。您可以在其 GitHub上了解更多信息。
brew install colima
安装完成后,您需要做的就是启动 Colima VM。
colima start
现在一切就绪!您可以通过运行来测试一切是否已正确连接。其中*
表示活动上下文。
docker context ls
# this will return a list of docker socket configurations, example below
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
colima * colima unix:///Users/{you}/.colima/default/docker.sock
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock https://192.168.64.3:16443 (default) swarm
针对更顽固应用程序的解决方案
尽管我们已配置好所有内容,但某些应用程序(例如 AWS SAM)仍会尝试直接连接到 Docker 套接字,而/var/run/docker.sock
不是遵循当前上下文的活动配置。因此,我们需要设置一个硬符号链接,将 Colima 套接字指向预期的 Docker 套接字位置。
# as /var/ is a protected directory, we will need sudo
sudo ln ~/.colima/default/docker.sock /var/run
# we can verify this has worked by running
ls /var/run
# and confirming that docker.sock is now in the directory
一旦建立此链接,您就可以自由使用那些比较顽固的应用程序。需要注意的是,如果您停止 Colima VM(容器运行时),您可能会丢失此符号链接,并且需要重新链接才能继续使用这些应用程序。
我希望这能帮助您为开发设置设置 Docker,并为您提供最熟悉的体验(我的意思是,使用官方 Docker CLI 是最接近的体验,对吗?)。
文章来源:https://dev.to/elliotalexander/how-to-use-docker-without-docker-desktop-on-macos-217m