通常一个项目会需要用到多个容器,这些容器之间需要相互通信

网络模式

安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
image.png

各个模式概括

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 指定。

查看网络信息

  1. 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