docker-compose 启动多个容器 为容器设置自定义网络 互相ping

1.通过docker network create 已经创建好了一个网络

ubuntu:ultimate是我自己提交的镜像,集成了一些常用的软件包。download.sh 中的内容是安装nginx,启动然后开始ping test3
后续的pin.sh pin1.sh pin2.sh分别是 ping nginx1、ping test1、ping test2,最后形成一个环。
通过networks指定使用的网络是 net111111,这是我自定义的网络

在这里插入图片描述
在下面与services对齐的位置配置自定义的网络
因为是事先建立好的,因此要用external:true
如果不指定名称,默认就是net111111,就是你在顶级networks下写的这个名字
在这里插入图片描述
当然,可以指定名称!下面两种yml文件,第一个是直接写为了net111111,第二个名称改为了net1,但其实使用的还是自定义的net111111网络

# 1
version: '3.7'
services:
  nginx_server:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: nginx1
    privileged: true
    entrypoint: [ "/app/download.sh" ]
    networks:
      - net111111
  test1:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test1
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net111111
    entrypoint: [ "/app/pin.sh" ]
  test2:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test2
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net111111
    entrypoint: [ "/app/pin1.sh" ]
  test3:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test3
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net111111
    entrypoint: [ "/app/pin2.sh" ]
networks:
  net111111:
    external: true
# 2
version: '3.7'
services:
  nginx_server:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: nginx1
    privileged: true
    entrypoint: [ "/app/download.sh" ]
    networks:
      - net1
  test1:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test1
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin.sh" ]
  test2:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test2
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin1.sh" ]
  test3:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test3
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin2.sh" ]
networks:
  net1:
    external: true
    name: net111111

互相ping的结果

2.在docker-compose.yml中配置网络

# 3
version: '3.7'
services:
  nginx_server:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: nginx2
    privileged: true
    entrypoint: [ "/app/download.sh" ]
    networks:
      - net1
  test1:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test11
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin.sh" ]
  test2:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test22
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin1.sh" ]
  test3:
    image: "ubuntu:ultimate"
    volumes:
      - "/app:/app"
    restart: always
    container_name: test33
    privileged: true
    depends_on:
      - nginx_server
    networks:
      - net1
    entrypoint: [ "/app/pin2.sh" ]
networks:
  net1:
    name: net222222
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.16.200.0/24
          gateway: 172.16.200.1

创建成功了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过容器名访问一下nginx

docker exec -it d711 w3m nginx2

在这里插入图片描述
成功!

参考
Networking in Compose
Compose file version 3 reference

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值