通常一个项目会需要用到多个容器,这些容器之间需要相互通信
网络模式
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
各个模式概括
host:相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。
none:该模式关闭了容器的网络功能。
container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。
指定模式
host模式:使用 —net=host 指定。
none模式:使用 —net=none 指定。
bridge模式:使用 —net=bridge 指定,默认设置。
container模式:使用 —net=container:NAME_or_ID 指定。
查看网络信息
docker network ls
创建网络名为 my_net 的网络
docker network create my_net
--network为容器提供服务
通过选项--network-alias将取名的my_net起了一个别名
docker run -d --name=tomcat --network my_net --network-alias net tomcat
在docker-compose中使用
version: '3'
services:
# 服务名称,用户自定义
nginx:
# 依赖于哪一个镜像可以加版本号
image: nginx
# 端口映射
ports:
- 80:80
networks:
- "net1"
# 目录挂着 数据卷
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
# 容器名称
container_name: mynginx
# 服务名称,用户自定义
app:
image: myboot
expose:
- "8080"
ports:
- 8080:8080
networks:
- "net1"
networks:
# 网络命名为net1
net1:
driver: bridge
