我把 docker 当作一个开发测试环境,但是每次修改代码后重新 build 了一个镜像总是需要手动删除 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX    问与答

我把 docker 当作一个开发测试环境,但是每次修改代码后重新 build 了一个镜像总是需要手动删除

  •  
  •   zxCoder 2021-04-16 12:57:13 +08:00 2582 次点击
    这是一个创建于 1639 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天忘记这事了,结果突然通知我磁盘快满了。。。。我一看好家伙几百个几个 g 的镜像。。。。。

    这种开发模式 应该怎么用比较好呢

    14 条回复    2021-04-16 15:30:48 +08:00
    rbe
        1
    rbe  
       2021-04-16 12:58:43 +08:00   1
    定期 docker image prune / docker system prune
    Vegetable
        2
    Vegetable  
       2021-04-16 13:10:37 +08:00
    docker-compose
    juzisang
        3
    juzisang  
       2021-04-16 13:42:15 +08:00
    代码用 volume 映射进去,除非是运行环境的配置更改,不需要一改代码就 build 一次吧,费时费力还耗费电脑资源...
    Solidot
        4
    Solidot  
       2021-04-16 13:49:27 +08:00
    docker rmi $(docker images | grep "none" | awk '{print $3}')
    mekingname
        5
    mekingname  
       2021-04-16 13:52:23 +08:00
    有两种方案:
    1. 写个 Makefile,自动解决问题
    2. vscode 有一个 vscode remote 的插件,可以把 Docker 作为远程服务器,在一个容器里面安装环境。在宿主机写代码,Vscode 自动在容器里面运行代码。这样就不需要每次测试都打包镜像了。
    zxCoder
        6
    zxCoder  
    OP
       2021-04-16 14:24:03 +08:00
    @juzisang emmm 好像忘记这回事了。。。那如果改成本地编译,然后把可执行文件 volume 映射进入,要怎么重启 docker 内的服务比较好呢?
    astraychoi
        7
    astraychoi  
       2021-04-16 14:30:33 +08:00
    磁盘映射,打的镜像只有运行环境。
    lusi1990
        8
    lusi1990  
       2021-04-16 14:37:31 +08:00 via iPhone
    -r 参数 关闭后自动删除
    ditel
        9
    ditel  
       2021-04-16 14:38:55 +08:00 via Android
    docker-compose
    dier
        10
    dier  
       2021-04-16 14:39:30 +08:00
    @zxCoder # 6 重启容器内的服务直接 docker restart NAMES 就行了
    juzisang
        11
    juzisang  
       2021-04-16 14:39:40 +08:00
    那就要看你用的什么语言了,可以查一查你用的语言远程调试相关的资料。
    如果你是 Jetbrains 系 IDE,它内置了个 Docker 插件,可以做到类似挂载本地目录开发调试的功能。
    VSCode 官方有一个 Remote Container 以及一系列 Remote 相关的插件,可以很舒服的在容器内或者 ssh 远程开发

    或者你直接 docker restart xxx 也可以
    swulling
        12
    swulling  
       2021-04-16 15:27:59 +08:00   1
    docker system prune -a --volumes
    清空全部未运行的 container 、未使用的 image 和 volume
    swulling
        13
    swulling  
       2021-04-16 15:28:09 +08:00
    写个 crontab 就行了
    F281M6Dh8DXpD1g2
        14
    F281M6Dh8DXpD1g2  
       2021-04-16 15:30:48 +08:00
    环境做好 build 一次代码挂进去就完了,老 build 镜像干啥
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3251 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:05 PVG 08:05 LAX 17:05 JFK 20:05
    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