Mic*_* K. 24 docker docker-compose
我必须使用docker-compose设置mongo副本集.对于副本集,容器必须彼此了解.
我试过了 docker-compose.yml
dbreplicasetpart1:
image: mongo:2.6.8
expose:
- '27018'
links:
- replicasetpart2
- replicasetpart3
cap_add:
- NET_ADMIN
dbreplicasetpart2:
image: mongo:2.6.8
links:
- replicasetpart1
- replicasetpart3
expose:
- '27019'
cap_add:
- NET_ADMIN
...
Run Code Online (Sandbox Code Playgroud)
我得到一个循环导入消息.但是,如果我删除dbreplicasetpart1的反向链接,我无法从dbreplicasetpart2 ping到dbreplicasetpart1.解决办法是什么?
Ber*_*ard 42
针对Docker 1.10进行了更新
Docker 1.10允许在compose文件中定义网络.这是更新的代码
version: "2"
services:
replica1:
image: mongo:2.6.8
container_name: replica1
networks:
- my-net
ports:
- "27018"
environment:
REPLICA2_URL: "http://replica2:27019"
replica2:
image: mongo:2.6.8
container_name: replica2
networks:
- my-net
ports:
- "27019"
environment:
REPLICA1_URL: "http://replica1:27018"
networks:
my-net:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
Docker 1.9的上一个答案
从Docker 1.9开始,解决方案是创建一个自定义网络并将其传递给docker-compose up命令.
创建一个网络
docker network create --driver bridge my-net
将网络引用为${NETWORK}docker-compose.yml文件中的环境变量().例如:
```
replica1:
image: mongo:2.6.8
container_name: replica1
net: ${NETWORK}
ports:
- "27018"
environment:
REPLICA2_URL: "http://replica2:27019"
replica2:
image: mongo:2.6.8
container_name: replica2
net: ${NETWORK}
ports:
- "27019"
environment:
REPLICA1_URL: "http://replica1:27018"
Run Code Online (Sandbox Code Playgroud)
```
请注意,replica1in http://replica1:27018将解析为replica1服务(容器)的IP地址.无需硬编码IP地址; replica1的条目自动添加到replica2容器的/ etc/host中.replica1容器也是如此.Docker将在其/ etc/host文件中为replica2添加一个条目.
NETWORK=my-net docker-compose up -d -f docker-compose.yml
我创建了一个桥接网络,只能在一个节点(主机)内工作.对开发者有好处.如果需要让两个节点相互通信,则需要创建一个覆盖网络.同样的原则.您将网络名称传递给docker-compose up命令.
Mig*_*yol 14
你应该使用大使模式:
https://docs.docker.com/engine/admin/ambassador_pattern_linking/
基本上,您创建了一个中间组件,将它们连接在一起.您可以看到我们与Spring Cloud的Eureka发现服务一起使用的示例:
ambassador:
image: cpuguy83/docker-grand-ambassador
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
command: "-name eureka_1 -name eureka2_1 "
eureka:
links:
- "ambassador:eureka2"
eureka2:
links:
- "ambassador:eureka"
Run Code Online (Sandbox Code Playgroud)
为简单起见,我只复制了链接
| 归档时间: |
|
| 查看次数: |
19489 次 |
| 最近记录: |