Docker Toolbox 怎么像在 linux 平台下配置 daemon.json 一样配置 insecure-registries

一、引言

最近,在工作中,老大给了我一个任务,也就是在工作机上配置一个 docker 的私人镜像库。其实,想要配置一个 docker 的私人镜像库并不困难,你只需要参考这篇博客即可:
使用Docker Registry快速搭建私有镜像仓库

然而,成年人的世界总不会这么简单,在这里,有一个非常大的阻碍,那就是:

工作机 == 不能上外网

也就是说,所有在配置 docker 的私人镜像库的过程中所需要的东西,都需要我自己在外网中下载好放到这个工作机上,这增加了我完成这个任务相当大的难度。

让我再好好总结一下现在我遇到的场景:
1. 我有一台公司分配好的不能上外网的 linux 环境,用于当作 docker 私有镜像库服务的服务端
2. 我有一台公司的不能上外网的工作机,系统是 win7,这将作为 docker 私有镜像库的客户端
3. 现状是,我已经配置好了 docker 私有镜像库的服务端的环境,而为了测试其功能,我还需要把工作机变成 docker 私有镜像库的客户端

那么,让我们开始吧:)

二、用虚拟机装一个 Ubuntu?

我第一个想到的办法就是这样,在虚拟机中装一个 Ubuntu18.04,然后在 Ubuntu18.04 中离线安装 docker,配置其 docker 客户端的功能。

当我兴致勃勃配置好了 docker,并且也安装好了之后,想要开启 docker 服务,却发生了很奇怪的问题:

docker wrong

这个问题,我挂着梯子逛了好久的论坛也没能解决,因此我也只能忍痛无奈放弃了这条路。

三、Docker 不是有 Windows 的支持吗!

这时候,我除了想了想要么换 CentOS,要么试试 Ubuntu14.04 版本,结果想来想去,觉得还是挺麻烦的。

这个时候,一个思路闪现在了我的脑海里:

我可以试试 Docker Toolbox 啊!

对呀,说干就干,我马上就去下载了一个 Docker Toolbox。这里有必要一提的是,win7 还是只能用 Docker Toolbox,而 Win10 已经通过 Hyper-V 直接支持了,功能更加强大。

通过下载软件安装,一路点击 next 完成了 Docker Toolbox 的安装。最后点击桌面上的 Docker Quickstart Terminal,经过一系列自动的初始化配置,终于看到了海豚图案,意味着安装成功。

我迫不及待的敲击了几个 docker 命令,比如 docker images 啦 docker info 啦 docker ps -a 之类的,发现可以成功运行,这时的我已经兴奋不已了。

然而,当我按照引言的博客里配置好了 docker 私有镜像库的客户端的环境,准备上传的时候。也就是这行代码:

docker push 172.18.18.90:5000/busybox:v1

结果出现了跟博客里面一样的提示:

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

也就是说,这里上传镜像需要通过 https 的方法才能上传,而博客里面给出的方法是基于 linux 的解法方法,当然可以进入到 /etc/docker/daemon.json 中添加 insecure-registries 解决。

而尴尬的问题是:我是 Docker Toolbox 啊,而且是 win7 不像在 win10 或者 Mac 上还有友好的图形界面提示用户配置。

这下该怎么办呢?

三、问题总是能解决的:)

参考这篇博客中的 Docker ToolBox 部分的命令行教学:
如何修改Windows上Docker的镜像源

我们可以从 Windows 命令进入虚拟 bash 中去,然后根据这个讨论区的介绍,修改具体的值:
Insecure registry setup not clear for Docker Machine #3433
最后,最后再重启 docker 服务就成功了。

这里,我将两篇文章的步骤整合一下:

1. 首先,我们刚打开 Docker Quickstart Terminal 进入的是 Windows 命令行界面,此时输入下述命令进入虚拟 docker bash 中去:

docker-machine ssh default

后面的 default 也可以不用输入,会自动补上。

2. 然后,我们已经进入了虚拟 docker bash 中去了,此时我们需要编辑 /var/lib/boot2docker/profile 文件中的 EXTRA_ARGS 信息:

sudo vi /var/lib/boot2docker/profile

3. 此时,我们在 --label provider=virtualbox 的下一行添加下述代码:

--insecure-registry xxx.xxx.xxx.xxx:yyy

这里需要解释的是, xxx.xxx.xxx.xxx 是我们的私有镜像仓库的 ip 地址,yyy 是你配置私有镜像仓库时设定的端口号
4. 最后,不要忘了,我们还需要重启 docker 服务的:

// 在虚拟 docker 环境中
sudo /etc/init.d/docker restart
// 或者
// 退出虚拟 docker 环境(使用 exit 命令)然后在 Windows 命令行下敲入下列命令
docker-machine restart

我们等待 docker 服务重启后,再执行我们的那行提交镜像的命令即可看到成功的回馈。

docker success

至此,完结撒花 ^_^

四、总结

最近初接触 Linux 系统,觉得真的是一时间很难适应,不过通过 docker 的学习,还真是慢慢开始上手了。

Docker 的学习还需要继续,有很多资料需要去看英文论坛才能解决。更加遗憾或者说更有挑战的是,一篇博客有时候并不可能真正解决你的问题,需要我们在庞杂的资料中找寻解决的方法。

To be Stronger:)

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页