containerd hosts.toml
时间: 2025-01-10 15:52:29 浏览: 70
### Containerd 的 `hosts.toml` 文件配置
对于 Kubernetes (k8s) 和 containerd 组合使用的场景下,`hosts.toml` 文件主要用于定义镜像拉取时所涉及的主机映射关系。此文件允许管理员自定义 Docker 或其他 OCI 容器运行时如何解析特定域名到 IP 地址。
#### 配置 `hosts.toml`
默认情况下,containerd 并不会自动创建或管理 `/etc/containerd/hosts.toml` 文件;因此如果需要使用该功能,则需手动编辑并放置于适当位置。下面是一个简单的例子来展示怎样设置这个文件:
```toml
# /etc/containerd/certs.d/my-custom-repo.example.com/hosts.toml
server = "https://my-custom-repo.example.com"
[host."http://192.168.1.10"]
skip_verify = true
[[host."https://mirror.gcr.io"]]
capabilities = ["pull"]
[host."https://dockerhub-proxy.mycompany.local"]
host.name = "index.docker.io"
```
上述配置说明如下:
- 对于私有仓库 `my-custom-repo.example.com` 设置了一个 HTTP(S) 协议前缀;
- 明确指定了一个不安全的内部网络地址 `192.168.1.10` 跳过 SSL/TLS 校验;
- 授予了来自 `mirror.gcr.io` 的只读权限(仅限 pull 操作);
- 将企业内代理服务器上的请求转发至官方 Docker Hub[^3]。
#### 解决常见问题
当遇到与 `hosts.toml` 相关的问题时,可以尝试以下几个方面进行排查:
- **确认路径正确无误**:确保 `hosts.toml` 放置于正确的目录结构之下,即位于 `/etc/containerd/certs.d/<hostname>/` 下。
- **重启服务生效**:修改完配置之后记得重启 containerd 以便加载新的设定。
- **验证语法准确性**:利用工具如 TOML linter 来检查是否有任何格式错误存在。
- **日志分析**:查看 containerd 日志输出寻找潜在线索,通常可以通过命令 `journalctl -u containerd.service` 获取更多信息。
阅读全文
相关推荐

















