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

引用地址:docker-compose 启动多个容器 为容器设置自定义网络 互相ping_correct!的博客-CSDN博客_docker-compose 自定义网络

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
 


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
1

成功!
————————————————
版权声明:本文为CSDN博主「correct!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43701790/article/details/125534764

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值