Docker-compose:仅在第一个容器中安装一个卷
我正在使用docker compose来运行一个MariaDB Galera集群,其中每个节点都是一个docker容器,但是MariaDB GC在启动时需要一个主节点来初始化数据库。
我想select主容器,通过在容器中挂载一个文件作为卷,并在脚本启动时检查这个文件。 所以我需要docker-compose来挂载这个文件,只是为了启动第一个容器,而不是通过执行docker-compose scale创build的容器。
可能吗 ?
你想做的事情不是直接可能的; 当使用docker-compose scale
你会得到一套相同的容器。 您有几个选项可用于为您的Galera群集select主节点。 这里有两个; 无疑有其他:
显式的主要
主要是您docker-compose.yaml
文件中的单实例容器,并且只扩展辅助容器。
galera_primary: image: myimage command: command_to_start_galera_master galera_secondary: image: myimage links: - galera_primary command: command_to_start_galera_worker
dynamic主要
如果你愿意写一些代码,你可能可以使用etcd来执行主选举,可能是利用primefaces创build密钥的能力。
我没有这个方便的例子,但过程应该是相对简单的:
- 每个节点都试图在etcd中创build一个特定的密钥
- 成功的节点是主人
- 其他节点可以查询etcd的主地址
- Docker rsyslog驱动程序在实际消息之前添加消息长度
- 将Docker安装到运行Ubuntu 12.04的VirtualBox VM中
- 多个独立的mariadb用法:多个容器或一个? 隔离与效率?
- Chaining tcp_keepalive_ *在docker集装箱内
- 无法启动docker服务错误“无法启动docker.service:找不到单位”。
- 是否有可能将Docker Hub公开托pipe的映像部署到Kubernetes Container Engine,而无需将其上传到Container Contay?
- 将Heroku进程types部署到单个应用程序
- 如何从任何docker仓库拉单个图像?
- 我们可以更新docker默认configuration?