顶不住了,快疯了, Mac 上使用 colima 安装 docker 到底怎么才能改源啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jinnrry
V2EX    Docker

顶不住了,快疯了, Mac 上使用 colima 安装 docker 到底怎么才能改源啊

  •  
  •   Jinnrry 276 天前 2146 次点击
    这是一个创建于 276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在公司使用 docker ,由于 docker-desktop 授权问题,换到 colima 。于是便开始了折磨

    1 、安装 colima 官方的安装方式,使用 brew 安装完 colima 和 docker client 非常流程,毫无卡点

    2 、安装完后测试 docker ps 、docker images 等命令,都没有问题。非常开心,居然这么顺利就换掉 docker-desktop 了

    3 、docker pull 发现拉不下来镜像。没事,这个我熟,熟练的修改~/.docker/daemon.json,改为源后,结果发现 docker pull 依然走官方源

    4 、搜了下 colima 原理,原来他底层就是一个虚拟机,那我懂了,得去他的虚拟机里面改配置文件。按照网上说的,通过colima ssh顺利进入虚拟机,然后准备改配置,结果发现这个虚拟机里面没有vim等命令,没法改配置。

    5 、看了下虚拟机版本,使用的是 ubuntu 。那就简单了,闭着眼睛敲了了个sudo apt update && apt install vim 。敲我之后发现,tmd 虚拟机内 ubuntu 的源也连不通。没事,这我也熟,闭着眼睛覆盖掉/etc/apt/source.list。覆盖完之后发现 apt 还是用不了,又看了下source.list的原文件,上面写着Ubuntu sources have moved to the /etc/apt/sources.list.d/ubuntu.sources ,这好像还是用的 ubuntu clound 版本,于是又看了下/etc/apt/sources.list.d/ubuntu.sources,好像是模板生成的,上面注释写着要改镜像模板,我去你大爷的,我哪知道你模板在哪啊

    6 、喝杯水冷静了一些,想了想,我是为了改 docker 配置啊,费这么大劲跟 apt 较什么劲啊。于是秀一波操作echo 'xxxxx' > ~/.docker/daemon.json 成功修改配置文件。感叹还好自己基本功扎实,没有 vim vi 这些编辑工具,照样有办法改配置文件。

    7 、改为配置文件后,当然得重启了,敲下一个colima restart,然后dokcer info一看,我去,没生效啊。再进虚拟机一看,你大爷的,配置文件给我还原了。

    8 、又去网上一通搜索,网上说要改~/.colima/default/colima.yaml配置,于是又照着网上说的,把 docker 源写到这里面,写完发现colima start根本起不来了,又费了九牛二虎之力,改了半天格式,好不容易把 colima 虚拟机启动起来了,但是 docker pull 还他大爷走的官方源

    9 、又在网上一通搜索,网上又有人说要通过colima start --edit编辑配置文件,于是又照着改,改了半天发现虚拟机又起不来了。colima start --edit~/.colima/default/colima.yaml这两个文件反复核对反复改,改了无数遍,虚拟机终于起来了。docker info里面的registry_mirrors也变了。激动得不行,感叹终于没问题了。结果他大爷的一拉镜像,还是走的官方源。

    10 、反复检查我配置的源,检查了无数遍,我又拿服务器去测试了一下,源肯定是可以用的,服务器上使用这个源都是正常的。而且这个源肯定也是没有被墙的,本地 ping 、tcpping 、telnet 各种花式测试,都是通的。

    11 、濒临崩溃,不知所以,怀疑人生,上 v 站发个帖,哪个大哥走过路过帮忙看看

    12 、md ,狗屎玩意,抬头一看时间,8 点了。瞎几把搞了一天,需求一行代码都还没写,收拾收拾下班,明天再来

    第 1 条附言    275 天前
    太 tm 无语了。为了解决这问题,深入研究了一遍 docker 网络请求原理,以及 colima 底层实现原理。终于搞明白问题了。

    感谢这 2 位,网上 95%的内容都是抄的,这里才是真正有用的:

    https://voxsay.com/posts/china-docker-registry-proxy-guide/

    https://www.jinnll.xyz/archives/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86hub

    主要问题:

    1 、根据第一个 blog 中的 docker 网络请求流程可知,一次 docker pull 涉及 3 个域名,分别是 registy-1.docker.ioauth.docker.ioproduction.cloudflare.docker.com

    2 、以前 dockerhub 只有 registy-1.docker.io 这个域名被封,因此以前各种反代方案中,都只反代了这一个域名。但是现在 auth.docker.io 也被封了。从这个网络请求流程中就能看到,这时没法拿到 token ,因此没法继续下去。(这时如果你显示指定域名进行 docker pull [proxy]/library/helloword 会报错 auth.docker.io 无法连接)

    3 、解决方案是第二 blog ,自建的反代服务器需要增加 auth.docker.io 的代理。

    最后,感谢上面 2 位的分享。

    WTF GFW
    11 条回复    2025-04-11 15:00:05 +08:00
    doghappy
        1
    doghappy  
       276 天前 via Android
    colima start --edit
    然后改下配置
    docker:
    registry-mirrors:
    - https://MY_REGISTRY_MIRROR

    详情进 https://github.com/abiosoft/colima/issues/225#issuecomment-1204906341
    izoabr
        2
    izoabr  
       276 天前
    要不试试用 orbstack
    Jinnrry
        3
    Jinnrry  
    OP
       276 天前
    @doghappy 没用,这个配置我改了一万遍了。还是走官方源去拉镜像

    docker pull nginx
    Using default tag: latest
    Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    Jinnrry
        4
    Jinnrry  
    OP
       275 天前
    @izoabr 看了一眼,官网写着

    Free to try, no card required
    Always free for personal use

    商用 8 刀一个月
    lucasdev
        5
    lucasdev  
       275 天前
    啊,不行吗。我同样的操作是正常使用的

    brew install colima

    vim ~/.colima/default/colima.yaml

    将 docker:{} 改成
    docker:
    registry-mirrors:
    - https://<your-mirror>

    然后执行 docker info ,就能看到生效了。docker pull 什么都正常
    Registry Mirrors:
    https://<your-mirror>
    doghappy
        6
    doghappy  
       275 天前 via Android
    @Jinnrry 我前几天刚试过,一次生效,可能你把环境搞污染了
    doghappy
        7
    doghappy  
       275 天前 via Android
    实在不行,你 pull 镜像时带上 URL ,手动 pull
    Jinnrry
        8
    Jinnrry  
    OP
       275 天前
    @lucasdev
    @doghappy #1 我知道原因了,我加了我自己的反代源,还加了 10 多个公开的 docker 源,特喵的竟然没有一个能用的。这些源个把月前都还是能用的。太离谱了
    Jinnrry
        9
    Jinnrry  
    OP
       275 天前
    @doghappy #7 具体原因加到 append 里面了,WTF GFW
    rockcat
        10
    rockcat  
       253 天前
    拆腻子 IT 工作者有三分之一的职业生涯是在与 GFW 斗智斗勇
    yjaal
        11
    yjaal  
       184 天前
    @Jinnrry 大佬,我的问题也是这个,修改倒是没问题,docker info 都可以看到配置是成功的,就是拉取的时候就一直请求 docker.io ,不知道网络是哪里没设置对呀。你说的反代源是哪里?我的梯子上面也没排出这个域名诶
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5997 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 02:11 PVG 10:11 LAX 19:11 JFK 22:11
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86