利用docker swarm为小型网站制作托管
我们有一个旧的PHP网站,我们用elixir重写了它。上一个页面以“老式”方式托管,代码部署到FTP,sql通过phpmyadmin管理 我正在本地使用利用docker swarm为小型网站制作托管,docker,docker-compose,docker-swarm,docker-machine,Docker,Docker Compose,Docker Swarm,Docker Machine,我们有一个旧的PHP网站,我们用elixir重写了它。上一个页面以“老式”方式托管,代码部署到FTP,sql通过phpmyadmin管理 我正在本地使用docker compose运行数据库 我的计划是只使用容器在DigitalOcean上主持新项目。我最近试用了docker机器,可以像使用本地机器一样使用DO虚拟机。我也读过关于docker swarm的文章,但它适用于多个虚拟机,多个容器用于同一服务 我最初的想法是只创建一个docker swarm管理器,并通过docker machine连
docker compose
运行数据库
我的计划是只使用容器在DigitalOcean上主持新项目。我最近试用了docker机器
,可以像使用本地机器一样使用DO虚拟机。我也读过关于docker swarm的文章,但它适用于多个虚拟机,多个容器用于同一服务
我最初的想法是只创建一个docker swarm
管理器,并通过docker machine
连接到该管理器,然后执行docker compose
命令
我们的目标是拥有一个可以自动化的解决方案,并且可能有1到2个备份容器。但我会避免使用多个虚拟机,因为该网站每天只有几百名访问者
这是可行的解决方案还是更简单的方法?一些快速指南:
docker stack deploy
命令,并且可以在本地继续使用docker compose
,并且它们可以共享相同/相似的compose文件。docker compose命令仅用于本地测试/开发,不理解Swarm,但两者的文件格式相同如果您希望避免手动配置,但仍能获得所需的高可用性和成本效益,请尝试运行Jelastic预先打包的Docker Swarm模板:
- 它具有内置的自动聚类和缩放功能
- 安装是自动执行的,您可以通过直观的UI完全访问群集
- 容器直接在裸机上运行,因此无需为每个服务保留完整的VM(并且您可以选择要在其上运行项目的数据中心)
- 根据RAM和CPU的实际消耗进行支付
- 容器自动分布在不同的硬件服务器上,从而提高了高可用性
有关软件包和安装步骤的详细信息见文章“截至2019年3月,我可以确认jelastic尚未为Docker Swarm做好生产准备-我尝试了多家供应商,结果导致了灾难。当您扩展或重新启动节点时,这种行为是不可预测的——在我们的例子中,IP地址发生了更改,所有装入的卷都消失了,jelastic在这篇文章之后联系了我,询问发生了什么,并说他们将对平台进行相应的改进,以确保其他人不会发生同样的事情。事实上,在与Meezaan ud Din交谈后,澄清了主要问题与Docker技术本身有关,因为它不支持克隆swarm群集或迁移到其他数据中心后的IP更改。更多详细信息可在链接中找到。