客户想要一个码头应用程序交付。我有两个有关最佳实践的问题。如何将码头图像传递给客户端?
首先,我需要提供一个与tomcat,一个webapp,一个数据库和一些表的应用程序。我知道如何设置tomcat和数据库,但你如何处理它们的资产(即webapp和表)呢?你是否将它们包含在图像中,然后将其推送到hub.docker.com? 如果webapp和数据库表是专有的,那么你如何处理?你创建一个私人的形象,并以某种方式分享?
其次,在应用程序运行时,数据库表可能会更改。据我了解(和测试),码头集装箱是无国籍的,所以一旦停止,数据被重置。 你如何在重新启动之间保持相同的状态? 我知道你可以在容器和主机之间映射文件夹,但是我真的会发布一个包含数据的独立数据库文件夹并让Docker容器映射它吗?这里最好的做法是什么?
在此先感谢
编辑首先,感谢大家谁回答了。 @RicardoBranco和@kstromeiraos对于如何分发图像都有很好的建议。我不知道哪个客户更喜欢,而我想给你们两个勾选标记,所以我只允许我给出一个答案。所以我已经把你们两个都提高了,并且会让互联网决定哪个答案长期存在。
二,我是个白痴。我正在使用“docker run”命令“启动”我的容器,现在我意识到它正在创建一个新容器,这让我相信我已经丢失了前一次会话中的所有数据。直到我意识到你应该打电话给“码头开始”来“启动”一个容器,我才注意到我理解的错误。
谢谢大家
在这种情况下'webapp'只是具有特定客户端应用程序的war文件吗?你会为许多客户反复做这件事吗?还是更多的是一次性的事情?你还可以澄清一点关于应用程序(数据库类型,数据库是否有多个部分(即模式和客户端数据分开)? –
@AndyShinn是的,webapp只是具有特定客户端应用程序的war文件。时间的事情,最初的Mysql数据库采用模式和数据,在使用过程中可能会添加更多的数据 – kane