我正在冒险使用docker并试图牢牢掌握产品。
虽然我喜欢它所承诺的一切,但手动操作却是一个很大的改变。
现在我了解如何构建容器,附加代码,提交并将其推送到您的仓库。
但我真正想知道的是,如何在部署后更新我的代码,例如,我有一些小错误修复但没有更改依赖项,但我也在同一个容器中运行数据库。
容器:
节点& NPM
Nginx的
Mysql的
PHP
现在,我理解你可以做的唯一方法是关闭容器重新拉动新容器并运行,但我想你会丢失数据库数据。
我一直在阅读https://docs.docker.com/engine/tutorials/dockervolumes/ 并且可能认为容器安装了一个在容器之间存在的数据文件。
我要做的是运行具有上述容器布局的网络应用程序/网站,只需使用最新的错误修正/功能更改代码。
答案 0 :(得分:1)
你很正确。 Docker镜像是应该重建和丢弃每次更新的东西 - 尽可能避免commit
(无论如何都在构建脚本之外)。
持久状态应该通过随后随映像一起装入的数据容器进行管理。因此,您的数据"与特定版本和应用程序实例分离。