不妨先了解下Docker Toolbox Mac运行大致原理
一般情况下,我们mac本地安装了Docker Toolbox,并已经开始使用,而在使用过程中,发现从默认的官方镜像源DockerHub拉取镜像速度堪忧(docker info
可以看到默认镜像源的信息)
所以此时需要使用国内的加速镜像源,本文总结下,如何在这种情况去修改默认镜像源。
按照Docker Toolbox在mac上的使用方法,安装Docker Toolbox成功后,应用列表中会出现两个应用,一个VirtualBox虚拟机,一个就是Docker终端程序,我们只需要点击如下这个终端应用即可。
随后就会打开本地的默认终端,启动docker服务。在终端的输出信息中,在开头部分,可以发现这样的内容
Last login: Tue Mar 2 17:34:19 on ttys005 You have new mail. bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh' [oh-my-zsh] Insecure completion-dependent directories detected: drwxrwxrwx 3 humh admin 102 7 8 2020 /usr/local/share/zsh drwxrwxrwx 5 humh admin 170 7 16 2020 /usr/local/share/zsh/site-functions
可以理解,这个/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh
是启动docker服务的主要脚本。查看该脚本内容,可以看到docker-machine
创建docker虚拟主机的过程。而我们正可以在创建docker虚拟主机时,通过指定参数配置镜像源,这样启动后的docker服务就可以使用加速镜像源了。
1、修改脚本,配置镜像源参数
在脚本中找到docker-machine create
的一行,因为脚本中已将docker-machine
抽象成一个变量,所以这里找到下面一行即可。
在“create”后追加参数--engine-registry-mirror=<your accelerate address>
注意,这里的<your accelerate address>
是你需要配置的加速镜像源地址,以阿里云举例,https://ubggxtiw.mirror.aliyuncs.com,所以配置后的结果为
然后保存,这里可能编辑需要权限sudo。
2、停止并删除原先的Docker虚拟机
docker-machine ls
查看现有Docker虚拟机情况
humh@MacBook-Pro ~ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.101:2376 v19.03.12
默认会创建一个名为“default”的虚拟机。
停止并删除正在运行的Docker虚拟机
humh@MacBook-Pro ~ docker-machine stop default Stopping "default"... Machine "default" was stopped. humh@MacBook-Pro ~ docker-machine rm default About to remove default WARNING: This action will delete both local reference and remote instance. Are you sure? (y/n): y Successfully removed default
这里之所以删除旧的Docker镜像,而不仅仅停止运行,是因为我们配置新镜像源的方式就是通过在创建虚拟机(docker-machine create
)时,指定参数生效的。而从脚本内容可以看到,它的逻辑是会先判断是否已存在Docker镜像,不存在才会创建新的虚拟机,触发docker-machine create
。
就是上图这部分,如果已存在镜像,则圈红部分命令执行结果会是0,就不会走入下面紧接着的if逻辑中。
3、验证配置结果
重启点击Docker终端的app,会新打开的一个终端窗口(其实是重新创建一个Docker虚拟机并启动)。
键入docker info
在输出信息中,可以看到生效的加速镜像源。
除了上面这种配置方式,其实还可以通过登录已创建的Docker虚拟机来修改配置,只不过本人未尝试,不在此赘述。
大致过程可能如下(引用自阿里云文档:https://help.aliyun.com/document_detail/60750.html?spm=a2c4g.11186623.6.558.64f963daspwkWO)
本文参考
发表评论