【问题标题】:multiple docker compose container - single ip多个 docker compose 容器 - 单个 ip
【发布时间】:2017-04-08 21:36:42
【问题描述】:

我有这个应用程序。

如何为网络服务分配一个 IP 地址并使用其中的数据库?

version: "2"
services:
  web:
   image: kartoffeltoby/typo3:latest
   hostname: localhost
   container_name: web
   ports:
    - 80:80
   link:
    - db:database
   volumes:
    - ./www/:/var/www/
   environment:
    - DOCROOT=/var/www/web
    - PAGESPEED=Off


  db:
   image: mysql:5.6
   hostname: database
   volumes:
    - ./DB/:/var/lib/mysql/
    - ./db/:/var/tmp/db
   environment:
    - MYSQL_ROOT_PASSWORD=passwort

【问题讨论】:

    标签: networking docker docker-compose


    【解决方案1】:

    解决办法是:

    network_mode:服务:网络

    version: "2"
      services:
        typo3:
         image: kartoffeltoby/typo3:latest
         hostname: axdbw.vagrant
         container_name: typo3
         volumes:
          - ./www/:/var/www/
         environment:
          - DOCROOT=/var/www/web
          - PAGESPEED=Off
         networks:
          mynet:
            ipv4_address: 172.16.47.14
    
        db:
         image: mysql:5.6
         volumes:
          - ./DB/:/var/lib/mysql/
          - ./db/:/var/tmp/db
         environment:
          - MYSQL_ROOT_PASSWORD=passwort
         network_mode: service:web
    
    
      networks:
        mynet:
          driver: bridge
          ipam:
            driver: default
            config:
            - subnet: 172.16.47.0/24
    

    【讨论】:

    • 我有同样的问题,我尝试了这个解决方案,但现在可以工作了。 错误:对于 无法为服务 app2 创建容器:冲突选项:自定义主机到 IP 映射和网络模式 我的 compose-file 版本是 3。在此先感谢 :)
    • 没有理由使用特定的 IP。解决方案可以像这样简单:```版本:“3”服务:typo3:图像:kartoffeltoby/typo3:最新容器名称:typo3网络:-mynet db:图像:mysql:5.6 network_mode:“service:typo3”网络:mynet:驱动程序:桥```
    【解决方案2】:

    没有理由使用特定 IP。解决方案可以很简单:

    version: "3"
      services:
        typo3:
         image: kartoffeltoby/typo3:latest
         container_name: typo3
         networks:
          - mynet
    
        db:
         image: mysql:5.6
         network_mode: "service:typo3"
      networks:
        mynet:
          driver: bridge
    

    这会将db 容器放置在与typo3 容器相同的IP 上。当心可能的端口冲突。

    在我的用例中,我必须避免令人讨厌的跨源错误。将数据库托管在与我的前端容器相同的 IP 上有助于解决这些问题。

    【讨论】:

      猜你喜欢
      • 2016-05-15
      • 2022-08-12
      • 1970-01-01
      • 2016-12-01
      • 2017-11-25
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多