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

2021 年 4 月 16 日
 zxCoder

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

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

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

或者你直接 docker restart xxx 也可以
swulling
2021 年 4 月 16 日
docker system prune -a --volumes
清空全部未运行的 container 、未使用的 image 和 volume
swulling
2021 年 4 月 16 日
写个 crontab 就行了
F281M6Dh8DXpD1g2
2021 年 4 月 16 日
环境做好 build 一次代码挂进去就完了,老 build 镜像干啥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/771073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX