docker compose 多容器共用网络问题

Posted delpan7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker compose 多容器共用网络问题相关的知识,希望对你有一定的参考价值。

前几天计划使用docker compose 编写一个多容器共用一个容器网络,结果总是报错,今天又试了一下才发现是端口绑定的问题造成的,端口只能绑定在产生网卡的容器上,绑定在其它窗口上就会报错,如下代码 mysql服务共用了nginx的网卡,在mysql里使用了port:3306时就会运行失败,将3306移到nginx上启动就成功了。

 

version: ‘3.3‘
services:
  nginx:
    image: "lnp_php"
    # container_name: "lnmp_nginx"
    ports:
      - "80:80"
      - "443:443"
      - "3306:3306"
    expose:
      - "3306"
    volumes:
      - /home/www/php:/home/www:rw
    # depends_on:
    #   - mysql
    # links:
    #   - mysql
  mysql:
    image: "mysql"
    # container_name: "lnmp_mysql"
    # ports:
    #   - "3306:3306"
    # expose:
    #   - "3306"
    volumes:
      - /home/docker/conf/mysql_w:/etc/mysql:rw
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    depends_on:
      - nginx
    network_mode: "service:nginx"

 

以上是关于docker compose 多容器共用网络问题的主要内容,如果未能解决你的问题,请参考以下文章

我的Docker之路:使用Docker-Compose管理多容器应用

Docker 容器技术 — Compose 编排

Docker 容器技术 — Compose 编排

使用Compose变量定制Docker网络

使用Compose变量定制Docker网络

docker-compose编排最佳实战(多服务)