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

本文主要是介绍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:)

这篇关于Docker Toolbox 怎么像在 linux 平台下配置 daemon.json 一样配置 insecure-registries的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277787

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二