引用地址: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