V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

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

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

    昨天忘记这事了,结果突然通知我磁盘快满了。。。。我一看好家伙几百个几个 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 就行了
    liprais
        14
    liprais  
       2021-04-16 15:30:48 +08:00
    环境做好 build 一次代码挂进去就完了,老 build 镜像干啥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3712 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:23 · PVG 18:23 · LAX 03:23 · JFK 06:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.