我现在没有足够的勇气开始使用码头工具我感觉像是来自上个世纪。我想在开始之前清除对docker的怀疑。我的问题主要是在云或托管环境中部署/运行docker镜像。
我读过关于什么是泊坞的帖子,但我找不到具体的答案。请原谅我没有做足够的谷歌搜索。
答案 0 :(得分:2)
我在AWS和其他云提供商上运行了docker。如果你有一些系统管理和/或devops的经验,那真的不是那么难。关于云托管商和入门,大多数提供商都有一些关于如何开始使用docker及其基础设施的教程:
我可以使用任何类型的服务器构建docker镜像(例如,wildfly, payara)和/或数据库服务器(例如mysql,oracle)并且它将继续工作 docker启用了云/数据中心?
要启动并运行服务器,您只需要在主机上安装docker引擎,就有许多发行版的软件包:
安装docker引擎后,您可以为基本上任何服务器或服务创建dockerfiles。在大多数情况下,希望您不需要,因为dockerhub上已经有无数的docker文件和预先配置的供应商维护图像(我使用wildfly,elk-stack和mysql)。保持选择图像时要小心,否则最终会出现图像中可能永远无法修复的安全问题!或者你必须自己做!
示例图片:
如果是,那么数据库文件和静态等持久性数据如何呢? 存储的存储(例如图像,上传的文档,日志) 码头图片或其他地方?当这些文件发生什么时 我更新了我的应用程序并重新部署了新图像?
通常,您需要将持久数据存储在docker镜像外部,并将其作为卷安装到映像中: https://docs.docker.com/engine/tutorials/dockervolumes/
某些基于云的存储提供商可能更容易以其他方式安装或连接,但此批量方法是标准的,IMO。
对于日志文件,我实际上是将它们推送到ELK服务器,因此不一定需要拥有日志卷。但是,由于ELK服务器也是一个docker镜像,它确实有一个数据持久的卷。
所以你有:
当然,它可以从那里变得更复杂,例如如何透明地扩展和更新您的环境等,但这是例如kubernetes或docker swarm或其他一些解决方案(我自己编写了一些脚本,但不需要大型系统的健壮性或弹性可扩展性)。
关于集群管理,应该注意Swarm现在包含在Docker Core中。这在社区中引起了一些争议,甚至谈到了核心的分支:
答案 1 :(得分:0)
我有在阿里巴巴云和AWS上运行docker的经验。我认为在两个云提供商上使用docker没有任何区别。无论云提供商如何,Docker镜像都可以在所有Linux平台上以相同的方式构建。但是,需要使用docker卷来处理数据的持久性。但是,建议在阿里巴巴云中使用托管服务(如RDS)来代替数据库,而不是使用docker。
答案 2 :(得分:0)
我可以使用任何类型的服务器构建docker镜像(例如,wildfly, payara)和/或数据库服务器(例如mysql,oracle)并且它将继续工作 docker启用了云/数据中心?
您可以构建自己的Docker镜像,也可以使用已经预先打包并经云提供商验证的解决方案。例如,以下是可以在Jelastic PaaS上运行和管理的auto-clustering Docker-based implementation of GlassFish。
如果是,那么数据库文件和静态等持久性数据如何呢? 存储的存储(例如图像,上传的文档,日志) 码头图片或其他地方?当这些文件发生什么时 我更新了我的应用程序并重新部署了新图像?
使用上面提到的集群,所有数据都保存在容器中,并在重新启动后保持不变。如果您希望在其他容器之间共享,也可以选择连接单独的数据存储容器。