Docker 组网时,内部 hostname 自动按下规则生成:
1、默认 hostname 名就是容器名。
2、如果使用了 scale 动态复制容器,则 hostname 按下规则生成:
所在目录名 + 容器名 + 序号(从 1 开始)
3、下面举例:
以 redis 集群配置为例,docker-compose.yml 文件所在目录为 */redis-ha * ,内容 如下:
version: '3.3'
networks:
net_app:
external: true
################################
# 事先已经创建网络:
# docker network create net_app
################################
services:
redismaster:
image: redis:3
networks:
- net_app
slave:
image: redis:3
command: redis-server --slaveof redismaster 6379
networks:
- net_app
1、使用
docker-compose up -d
可生成三个容器。
分别是 redismaster 、slave 、sentinel ,这三个容器的默认 hostname 同上。
2、容器复制:
docker-compose scale slave=3
3、这时会生成三个 slave 的,它们的 hostname 分别为
redisha_slave_1
redisha_slave_2
redisha_slave_3
这三个 hostname 是可以被同一个 network 下的应用程序直接使用的 。当然刚开始的 slave 名也可以继续用,它的 ip 与 redisha_slave_1 相同 。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于