V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zuston
V2EX  ›  Apple

Mac + Docker 占据太多本地存储

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

    当前正在用的 macbook pro2018 16+256 ,docker desktop 占据太多了本地空间。

    docker build/push 等操作可以在公司服务器上做,但是需要将本地代码提交到 git, 再在服务器上 pull, 再 build/push 流程太长,是否有一个 docker client 支持 remote build ? 目前想到的方案是使用 juicefs 搭建一个共享存储,mac 和 编译服务器分别挂载

    17 条回复    2023-05-12 11:54:23 +08:00
    ZedRover
        1
    ZedRover  
       343 天前   ❤️ 2
    caryqy
        2
    caryqy  
       343 天前
    docker image prune

    docker container prune

    上面两个命令清理下占用情况


    轻量的一套可以考虑 gogs+drone+harbor 部署在服务器上,你电脑只负责提交代码
    zuston
        3
    zuston  
    OP
       343 天前 via iPhone   ❤️ 1
    @ZedRover I have to say NB
    qfdk
        4
    qfdk  
       343 天前 via iPhone
    @ZedRover beta 版本免费🆓 后面感觉要收费。估计也有个试用版吧
    Nitroethane
        5
    Nitroethane  
       343 天前
    没太 get 到你的点。docker client 原生支持通过 ssh 连接到远程服务器上的 docker 引擎,这样的话你在 Mac 上就可以通过远程服务器的 docker 引擎构建本地的代码了。
    然后你这个需求可以用 CI 完美解决吧,如果用 git 服务器用的 gitlab 的话直接 gitlab CI ,不是的话用 Jenkins 。
    zuston
        6
    zuston  
    OP
       343 天前 via iPhone
    @Nitroethane 学习到了,明天就试试
    paynezhuang
        7
    paynezhuang  
       343 天前
    我 Orbstack 和 podman desktop 一起用
    mkmoon
        8
    mkmoon  
       343 天前 via iPhone   ❤️ 1
    Docker engine 本身也支持远程,可以看看官方文档,还可以用 tls 保护

    https://docs.docker.com/config/daemon/remote-access/

    这样就 mac 本地就不用安装 docker desktop(它有个 vm 镜像,很大,也可以删了)了,只需要 brew install docker 安装一个命令行客户端,再配置 docker context 就可以连远程了

    如果操作不熟,切记提前做好备份好
    xtinput
        9
    xtinput  
       343 天前
    docker desktop 太不好用了,我是在虚拟机里面跑 docker 的,macOS 里控制虚拟机的 docker ,虚拟机是系统自带的框架跑的,虚拟机文件可以随便放移动硬盘里
    Akkuman
        10
    Akkuman  
       343 天前 via Android   ❤️ 1
    @caryqy 现在 gitea 出了个 gitea action ,github action 大部分可以直接拿来用,可以代替 gogs + drone 了
    zuston
        11
    zuston  
    OP
       343 天前 via iPhone
    @mkmoon 学到了。

    不得不说 v2 真是个好地方!
    seanzxx
        12
    seanzxx  
       342 天前
    你服务器上装个 CI 工具呀,
    本地一般修改代码,然后提交到 git ,CI 会自动触发,pull 新代码,然后 build ,然后把 image push 到服务器。
    YsHaNg
        13
    YsHaNg  
       342 天前
    大家有空可以 push 一下这个 pr https://github.com/containerd/containerd/pull/5935 macOS 可以支持 native docker 避免启动一个 vm Linux 套娃
    ZedRover
        14
    ZedRover  
       342 天前
    @qfdk 现在隔几天就更新一次,感觉等稳定了就开始收米喽
    crsmk01
        15
    crsmk01  
       342 天前
    为啥不用 CI 平台去完成 ?
    zuston
        16
    zuston  
    OP
       342 天前
    @seanzxx 确实也可以!一般我们理解的 cicd, 都是在发布前或者是提交 MR 的时候,测试或者是发布镜像使用的。我的场景其实还停留在本地测试环节,打包 K8s operator 镜像然后上 K8s 测试,还没到上线 CI 那一步。

    当然搞个小工具,自动检测 gitlab branch 变更也可以,但是我不希望我的 commit 包含还没确定的更改。有 commit log 洁癖 😢
    zuston
        17
    zuston  
    OP
       342 天前
    @mkmoon 搞定,这个方法太完美了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1047 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:15 · PVG 03:15 · LAX 12:15 · JFK 15:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.