You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Colima运行Docker容器:启动testcontainers/ryuk镜像连接失败

解决Colima下Testcontainers Ryuk连接Docker Daemon失败的问题

问题核心

启动testcontainers/ryuk镜像时,报错无法连接unix:///var/run/docker.sock,本质是Ryuk默认尝试访问宿主机标准Docker socket路径,但Colima的socket实际位于${HOME}/.colima/default/docker.sock,现有环境变量配置未完全覆盖Ryuk的连接逻辑。

具体修复步骤

1. 修正环境变量的语法错误

你当前TESTCONTAINERS_HOST_OVERRIDE的配置多了一个冗余右括号,需修改~/.zprofile中的对应行:

export TESTCONTAINERS_HOST_OVERRIDE=$(colima ls -j | jq -r '.address')

修改后执行source ~/.zprofile让配置立即生效,再通过以下命令验证变量是否正确:

echo $DOCKER_HOST
echo $TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE
echo $TESTCONTAINERS_HOST_OVERRIDE

确保输出分别对应Colima的socket路径、/var/run/docker.sock和Colima的IP地址。

2. 创建Docker Socket软链接

Ryuk容器内部可能仍硬编码指向/var/run/docker.sock,直接将Colima的socket链接到该路径:

# 先备份原有的docker.sock(如果存在)
sudo mv /var/run/docker.sock /var/run/docker.sock.bak
# 创建软链接
sudo ln -s ${HOME}/.colima/default/docker.sock /var/run/docker.sock

执行后验证链接有效性:

ls -l /var/run/docker.sock

输出应显示指向你的Colima socket路径。

3. 调整Testcontainers配置文件

在.testcontainers.properties中补充指定Docker主机地址,覆盖默认策略:

docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
docker.host=unix:///Users/你的用户名/.colima/default/docker.sock

注意将/Users/你的用户名替换为你的实际用户目录路径。

4. 直接指定DOCKER_HOST启动Ryuk(临时验证)

如果上述配置仍未生效,可在启动Ryuk时直接指定Docker主机地址:

DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock" docker run <ryuk_image_id>

若此命令成功,说明问题出在环境变量或配置文件的加载优先级上,需重新检查终端会话的环境变量是否正确加载。

5. 验证Colima与Docker客户端连接

确保Colima处于运行状态,且Docker客户端已正确连接:

colima status
docker info

如果docker info能正常返回Colima的Docker daemon信息,说明基础连接没问题。

内容的提问来源于stack exchange,提问作者Katia Iacomussi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:10:23