客户希望交付docker应用。关于最佳做法,我有两个问题。
首先,我需要交付一个包含tomcat,一个webapp,一个数据库和一些表的应用程序。我知道如何设置tomcat和数据库,但是您如何处理它们的资产(即webapp和表)?您是否将它们包括在映像中,然后将其推送到hub.docker.com?如果webapp和数据库表是专有的,您将如何处理?您是否创建私人图像并以某种方式共享它?
其次,随着应用程序的运行,数据库表可能会更改。据我了解(并经过测试),docker容器是无状态的,因此一旦停止,数据将被重置。如何在两次重启之间保持相同的状态?我知道您可以在容器和主机之间映射文件夹,但是我真的要运送一个单独的包含数据的数据库文件夹,并让docker容器映射它吗?这里的最佳做法是什么?
提前致谢
编辑首先,感谢所有回复的人。@RicardoBranco和@kstromeiraos都对如何分发图像有很好的建议。我不知道客户喜欢哪一种,尽管我想给你们两个都打勾,所以SO只允许我给一个答案。因此,我对你们俩都表示支持,并让互联网决定从长远来看哪个答案占上风。
其次,我是个白痴。我当时使用“ docker run”命令“启动”我的容器,现在我意识到正在创建一个新的容器,这使我相信自己丢失了上一个会话中的所有数据。直到我意识到您应该调用“ docker start”来“启动”一个容器后,我才意识到自己在理解上的错误。
谢谢你们
https://docs.docker.com/registry/
您有两种选择来分发图像。
正如@Ricardo Branco所说,请使用私人注册表。
使用docker save将图像保存到tar文件,然后,分享与你的客户的人可以通过加载它们使用它们docker load(https://docs.docker.com/engine/reference/commandline/save/)。
您应该有一个可以保留数据库数据的卷。您可以映射主机目录。
要备份卷,请看一下这个有用的工具,它可以使您做到这一点。https://github.com/discordianfish/docker-backup
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |