postgresql affinity - docker swarm 服务
postgresql affinity - docker service to swarm
我是 docker 的新手,我有一个问题。我想在 docker 群中的两个节点之间获得亲和力并交换数据。
(示例 ip)
我有一位经理:192.168.10.1
和工作人员:192.168.10.2
他们已经连接。
我写了 docker-compose.yml
文件来使用 postgres 数据库创建新服务,并且
管理器 yml 文件如下所示:
version: '3.1'
services:
db:
image: postgres
environment:
POSTGRES_DB: My_DB
POSTGRES_USER: My_DB_User
POSTGRES_PASSWORD: My_DB_Password
PG_DATA: /var/lib/postgresql/data/pgdatai
deploy:
placement:
constraints:
- node.role == manager
- node.labels.type == queue
adminer:
image: adminer
ports:
- 8080:8080
和工人:
version: '3.1'
services:
db:
image: postgres
environment:
POSTGRES_DB: My_DB
POSTGRES_USER: My_DB_User
POSTGRES_PASSWORD: My_DB_Password
PG_DATA: /var/lib/postgresql/data/pgdatai
deploy:
placement:
constraints:
- node.role == worker
- node.labels.type == queue
adminer:
image: adminer
ports:
- 8080:8080
而且我的机器上没有任何堆栈。执行下面的命令(不确定是否正确)我有一个错误:yaml: line 2: did not find expected key
docker stack deploy --compose-file docker-compose.yml my_hostname
我的主机名是我从管理器机器
中的命令docker node ls
读取的
也许有人处理过非常相似的问题和目标,可以给我指导。我在网上看了几个演示,但我发现那些有点没用。对于如何实现此目标的任何帮助和指导,我将不胜感激 "backup"
好的,所以我现在更了解yaml了。对于其他发生类似问题的人:
1) 检查你在yml文件中的写法。你应该加倍注意白色标记。
2)我重新配置了yml文件:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_DB: db_db
POSTGRES_USER: db_user
POSTGRES_PASSWORD: db_pass
PG_DATA: /var/lib/postgresql/data/pgdatai
expose:
- "5432"
ports:
- "5432:5432"
volumes:
- /var/lib/postresql/db/
deploy:
placement:
constraints:
- node.hostname == vmAPI1
3) 我使用命令为 运行 群提供服务:
docker stack deploy --compose-file docker-compose.yml name_of_your_manager_swarm
我是 docker 的新手,我有一个问题。我想在 docker 群中的两个节点之间获得亲和力并交换数据。
(示例 ip)
我有一位经理:192.168.10.1
和工作人员:192.168.10.2
他们已经连接。
我写了 docker-compose.yml
文件来使用 postgres 数据库创建新服务,并且
管理器 yml 文件如下所示:
version: '3.1'
services:
db:
image: postgres
environment:
POSTGRES_DB: My_DB
POSTGRES_USER: My_DB_User
POSTGRES_PASSWORD: My_DB_Password
PG_DATA: /var/lib/postgresql/data/pgdatai
deploy:
placement:
constraints:
- node.role == manager
- node.labels.type == queue
adminer:
image: adminer
ports:
- 8080:8080
和工人:
version: '3.1'
services:
db:
image: postgres
environment:
POSTGRES_DB: My_DB
POSTGRES_USER: My_DB_User
POSTGRES_PASSWORD: My_DB_Password
PG_DATA: /var/lib/postgresql/data/pgdatai
deploy:
placement:
constraints:
- node.role == worker
- node.labels.type == queue
adminer:
image: adminer
ports:
- 8080:8080
而且我的机器上没有任何堆栈。执行下面的命令(不确定是否正确)我有一个错误:yaml: line 2: did not find expected key
docker stack deploy --compose-file docker-compose.yml my_hostname
我的主机名是我从管理器机器
中的命令docker node ls
读取的
也许有人处理过非常相似的问题和目标,可以给我指导。我在网上看了几个演示,但我发现那些有点没用。对于如何实现此目标的任何帮助和指导,我将不胜感激 "backup"
好的,所以我现在更了解yaml了。对于其他发生类似问题的人:
1) 检查你在yml文件中的写法。你应该加倍注意白色标记。
2)我重新配置了yml文件:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_DB: db_db
POSTGRES_USER: db_user
POSTGRES_PASSWORD: db_pass
PG_DATA: /var/lib/postgresql/data/pgdatai
expose:
- "5432"
ports:
- "5432:5432"
volumes:
- /var/lib/postresql/db/
deploy:
placement:
constraints:
- node.hostname == vmAPI1
3) 我使用命令为 运行 群提供服务:
docker stack deploy --compose-file docker-compose.yml name_of_your_manager_swarm