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

2021-04-16 12:57:13 +08:00
 zxCoder

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

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

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

或者你直接 docker restart xxx 也可以
swulling
2021-04-16 15:27:59 +08:00
docker system prune -a --volumes
清空全部未运行的 container 、未使用的 image 和 volume
swulling
2021-04-16 15:28:09 +08:00
写个 crontab 就行了
liprais
2021-04-16 15:30:48 +08:00
环境做好 build 一次代码挂进去就完了,老 build 镜像干啥

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

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

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

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

© 2021 V2EX