Docker Toolbox的Docker环境下配置 insecure-registries

一、引言

最近要搭建一个 docker 的私人镜像库,这本身并没有什么难的。只要照着网上的教程一步一步配置就行了。但是很多人的docker环境是Docker Toolbox搭建的,里面很多配置和网上参考的不一样。

二、问题

现在所遇到的问题是,当很多人配置好了 docker 私有镜像库的环境,准备上传的时候,会出现这种情况。

The push refers to repository [192.168.0.1:8080/busybox]
Get https://192.168.0.1:8080/v2/: http: server gave HTTP response to HTTPS client

就是让你使用https才能push镜像上去,而很多博客里面是 linux 环境docker的解法方法,可以直接进入到 /etc/docker/daemon.json 中添加 insecure-registries 解决。可是Docker Toolbox却不是这样的。

三、解决

  1. 打开 Docker Quickstart Terminal ,输入下述命令进入默认的 docker 中:

docker-machine ssh default

  1. 进入了虚拟docker中后,编辑 /var/lib/boot2docker/profile 中的 EXTRA_ARGS :

vi /var/lib/boot2docker/profile

  1. 在 --label provider=virtualbox 的下一行添加如下信息:

–insecure-registry 192.168.0.1:8080

将上面的地址改为你的私有镜像仓库的 ip 地址和端口

  1. 最后重启 docker 服务,在windos命令下输入:

docker-machine restart

docker 服务重启后,再执行我们的提交镜像的命令即可成功push镜像上去。

<think>好的,我需要帮助用户解决在Docker 1.7中配置insecure-registries的问题。首先,我得回想一下Docker不同版本的配置方法差异。用户提到的是Docker 1.7,这个版本比较旧了,可能配置方式和新版不同。 记得在较新的Docker版本中,通常是通过修改`/etc/docker/daemon.json`文件来设置insecure-registries,然后重启服务。但Docker 1.7可能不支持这种配置方式,因为daemon.json的引入可能是在后续版本中。这时候可能需要通过命令行参数来配置Docker守护进程。 查阅Docker 1.7的官方文档或者历史资料,发现旧版本中确实是通过修改启动脚本或服务配置文件来添加参数。例如,在基于systemd的系统上,可能需要编辑`/etc/systemd/system/docker.service.d`下的配置文件,或者在sysvinit系统中修改`/etc/default/docker`文件。 用户提供的引用[4]提到了daemon.json的配置,但那是针对较新版本的,而用户的情况是1.7,所以需要调整方法。正确的步骤应该是找到Docker服务的启动脚本,添加`--insecure-registry`参数。例如,在Ubuntu系统上,可能修改`/etc/default/docker`中的DOCKER_OPTS变量,加入`--insecure-registry=192.168.0.4:5500`这样的参数,然后重启Docker服务。 另外,需要注意防火墙设置和端口是否开放,确保私有仓库的地址和端口正确无误。配置完成后,用户需要重启Docker服务使配置生效,并且可以运行`docker info`来验证配置是否成功应用。 总结下来,步骤应该是:编辑Docker的启动配置文件,添加`--insecure-registry`参数,重启服务,验证配置。同时提醒用户检查网络和权限问题,确保配置正确后能够访问私有仓库。</think>### 如何在 Docker 1.7 中配置 `insecure-registries` #### 1. 理解 `insecure-registries` 的作用 Docker 默认要求通过 HTTPS 协议与镜像仓库通信。若需使用 HTTP 协议的私有仓库,需显式声明为“非安全仓库”以避免证书验证失败[^4]。 #### 2. Docker 1.7 的配置方法(旧版本) Docker 1.7 及更早版本不支持通过 `daemon.json` 文件配置,需通过 **启动参数** 或 **服务配置文件** 实现: - **步骤 1:编辑 Docker 服务配置文件** - 对于 `SysVinit` 系统(如 CentOS 6): ```bash vim /etc/sysconfig/docker ``` 在 `OPTIONS` 中添加 `--insecure-registry=仓库地址:端口`: ```bash OPTIONS="--insecure-registry=192.168.0.4:5500" ``` - 对于 `Upstart` 系统(如 Ubuntu 14.04): ```bash vim /etc/default/docker ``` 修改 `DOCKER_OPTS`: ```bash DOCKER_OPTS="--insecure-registry=192.168.0.4:5500" ``` - **步骤 2:重启 Docker 服务** ```bash service docker restart ``` - **步骤 3:验证配置** ```bash docker info | grep Insecure ``` 输出应包含配置的仓库地址。 #### 3. 注意事项 1. **网络连通性**:确保 Docker 主机能访问私有仓库的 IP 和端口。 2. **多仓库配置**:多个仓库需多次添加 `--insecure-registry` 参数。 3. **兼容性**:Docker 1.13+ 支持 `daemon.json`,但 1.7 需沿用旧方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值