本文主要是介绍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 不是有 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 服务重启后,再执行我们的那行提交镜像的命令即可看到成功的回馈。
至此,完结撒花 ^_^
四、总结
最近初接触 Linux 系统,觉得真的是一时间很难适应,不过通过 docker 的学习,还真是慢慢开始上手了。
Docker 的学习还需要继续,有很多资料需要去看英文论坛才能解决。更加遗憾或者说更有挑战的是,一篇博客有时候并不可能真正解决你的问题,需要我们在庞杂的资料中找寻解决的方法。
To be Stronger:)
这篇关于Docker Toolbox 怎么像在 linux 平台下配置 daemon.json 一样配置 insecure-registries的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!