docker-compose3中网络通信

不同docker-compose中容器之间网络通信

A docker-compose文件中创建网络,并启动

version: "3"
services:
  nginx001:
    container_name: nginx001  #容器名称
    domainname: nginx001  #设置容器的域名。当容器需要与其他容器或主机进行通信时,可以使用域名来进行寻址。
    hostname: nginx001 #参数用来设置容器的主机名。主机名是容器在网络中的唯一标识符,可以用来识别和定位容器。
    image: nginx:1.24 # 镜像
    restart: always # 重启策略
    ports:
      - "8000:80"
    networks:  # 使用网络
      mynet:   # 使用自定义网络名称

networks:  #定义网络
  mynet:   # compose中网络名称
    name: mynet  # 实际docker中网络名称 docker network ls 查看的名称
    driver: bridge  # 网络名称

B docker-compose文件使用A中创建网络,并启动

version: "3"
services:
  nginx002:
    container_name: nginx002
    domainname: nginx002
    hostname: nginx002
    image: nginx:1.24
    restart: always
    ports:
      - "8001:80"
    networks:
      - mynet  #服务使用指定创建好的网络

networks: # 定义网络
  mynet:  # 网络名称,表示使用A中docker-compos中已创建好的docke网络名称
    external: true  # true表示使用A中docker-compos中已创建好的docke网络,没有则启动报错.

注意

  • 2个compose的yaml文件,不要放在一起,不然提示警告.
    • WARN[0000] Found orphan containers ([nginx001]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.

参考

posted on 2024-03-09 12:05  Colin88  阅读(126)  评论(0编辑  收藏  举报