我正在试验码头群中的mongod。我使用docker-compose文件(v3)在swarm中部署了mongod服务。我的群由三个节点组成
node1
node2
node3
当我使用docker stack deploy --compose-file <my-docker-compose-file>
部署mongod服务时,mongod服务分布在三个节点之间,然后我将这些mongod实例配置为副本集。
要在副本集中启用内部身份验证,我需要提供为容器内运行的mongod实例生成的x.509证书。我已生成位于node1
目录中的所有相关证书。现在我需要将这些证书提供给服务中运行的容器。我无法找到一种方法来添加docker-compose
文件的配置,该文件将node1
的证书挂载到node2
和node3
上运行的容器。
我尝试过:
services:
rs1a:
...
volumes:
- certs:/certs
volumes:
certs:
driver: local
driver_opts:
device:/path/to/dir/containing/certs/on/node1
它没有工作并引发错误no such device
请注意,当我使用compose-file重新部署服务时,它们可能会被分发到任何随机节点,因此我需要为可以共享的地方的所有mongod实例提供证书。我不能在节点上拥有mongod实例特定的证书。我不知道这是否是解决问题的好方法。如果有更好的方法,请提出建议。