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

WSL2 Ubuntu环境下Docker构建TLS证书验证失败求助

解决方案:绕过私有Docker仓库的证书验证问题

1. 正确配置Docker守护进程跳过指定私有仓库的TLS验证

你之前修改/etc/docker/daemon.json无效,大概率是配置格式错误或者守护进程归属问题:

情况A:WSL2中使用原生Ubuntu Docker

编辑/etc/docker/daemon.json,确保内容为合法JSON格式:

{
  "insecure-registries": ["<some_url>"]
}

替换<some_url>为你的企业私有仓库地址(比如registry.company.com,不要带http://或https://)。

然后执行以下命令重启Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

如果重启仍报错,用jsonlint /etc/docker/daemon.json检查JSON语法(先执行sudo apt install jsonlint安装工具)。

情况B:WSL2集成Windows Docker Desktop

如果你的Docker是通过Windows Docker Desktop共享给WSL2的,修改WSL内的配置不会生效,需要在Docker Desktop中操作:

  • 打开Docker Desktop,进入Settings > Docker Engine
  • 在配置框中添加"insecure-registries": ["<some_url>"],保存后重启Docker Desktop。

2. 临时构建时绕过验证(仅测试场景)

如果只是临时测试,不想修改守护进程配置,可以在启动Docker守护进程时临时添加参数:

# 先停止现有Docker服务
sudo systemctl stop docker
# 启动带不安全仓库参数的守护进程
sudo dockerd --insecure-registry <some_url> &
# 然后执行构建命令
docker build --tag build_machine .

测试完成后记得恢复正常的Docker服务:sudo systemctl restart docker

3. 导入私有仓库CA证书(安全推荐方案)

不建议完全跳过验证,更安全的方式是让Docker信任私有仓库的CA证书:

  1. 创建证书存放目录:
sudo mkdir -p /etc/docker/certs.d/<some_url>
  1. 将企业提供的私有仓库CA证书(通常是ca.crt文件)复制到该目录:
sudo cp /path/to/your/ca.crt /etc/docker/certs.d/<some_url>/
  1. 重启Docker服务:
sudo systemctl restart docker

关于你之前的docker --tls build问题

--tls参数是用来配置Docker客户端连接TLS加密的Docker守护进程,和私有仓库的镜像拉取证书验证完全无关,所以这个方向是错的,不用再尝试。

内容的提问来源于stack exchange,提问作者Marcello Salis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:23