我目前在家庭实验室的几台主机上以独立的方式运行了多个docker容器。这些主机安装了docker ce,未在任何群集或群集模式下配置。运行的容器使用NFS共享来存储配置信息,例如Plex等,并在主机模式下配置,以便通过主机IP访问容器。
示例配置:
docker run \
-d \
--name plex \
--network=host \
-e TZ="<timezone>" \
-e PLEX_CLAIM="<claimToken>" \
-v <path/to/plex/database>:/config \
-v <path/to/transcode/temp>:/transcode \
-v <path/to/media>:/data \
plexinc/pms-docker
我感兴趣的是,在高可用性模式下运行这些容器,如果Plex在主机A上运行且主机变得不可用,Plex容器将自动在另一台主机上启动并保持可访问状态。
我一直在做一些研究,并且明白这可能涉及创建一个拥有1个经理和2个工作人员(最开始)的docker swarm,然后创建与容器相关联的docker overlay网络。在浏览信息和教程等时,我没有看到在群集模式下使用和启动容器时使用docker run
的任何示例,而是将容器作为服务(或作为服务集合的堆栈)启动。这些“服务”通常是应用程序组件或工作者,而不是整个应用程序,我还读到docker服务不能归因于静态IP地址,所以我不确定这对HA有何影响?我计划为各个容器分配一个静态IP,我将用它来连接客户端,并且当前哪个主机在群集中托管容器并不重要。
非常感谢任何指针或提示。