Docker Toolbox for Windows拉取私有Registry报错:HTTP响应给HTTPS客户端
解决Docker Toolbox下私有Registry拉取报错:HTTP response to HTTPS client
我之前在Windows用Docker Toolbox搭私有Registry时,也踩过这个一模一样的坑!这个错误的核心原因很简单:Docker客户端默认强制要求Registry使用HTTPS协议,但咱们自己部署的私有Registry默认是HTTP服务,所以客户端直接拒绝了连接请求。下面是我亲测有效的解决步骤:
步骤1:进入Docker Toolbox的虚拟机
Docker Toolbox是基于VirtualBox虚拟机运行Docker的,所以配置要改在虚拟机里。打开Docker Quickstart Terminal,执行命令进入默认虚拟机:
docker-machine ssh default
步骤2:配置Docker daemon允许不安全Registry
在虚拟机里,我们需要修改Docker daemon的配置文件,把私有Registry的地址加入「不安全Registry」列表:
- 先创建/编辑配置文件:
sudo vi /etc/docker/daemon.json
- 在文件里写入以下内容(替换成你的Registry地址):
{ "insecure-registries": ["192.168.99.100:5000"] }
- 保存并退出vi编辑器(按
ESC,输入:wq回车)。
步骤3:重启Docker服务使配置生效
在虚拟机里执行命令重启Docker:
sudo service docker restart
步骤4:退出虚拟机并验证
执行exit退出虚拟机,然后再尝试拉取镜像:
docker pull 192.168.99.100:5000/my-ubuntu
额外检查点
如果还是报错,可以先确认Registry容器是否正常运行:
docker ps
确保容器的端口映射是0.0.0.0:5000->5000/tcp,说明Registry服务在正常监听5000端口。
内容的提问来源于stack exchange,提问作者Tomáš Kacálek
相关产品推荐
相关产品推荐

