• docker容器使用不同IP


    工作记录又一篇

    此需求的目的是解决一个奇怪的bug:多个docker搭载php服务在同时收到请求,并去请求同一个数据库时(只有查操作),查数据库的tcp请求会变成串行,即一个请求完了之后第二个请求才开始发起,虽然这个问题还是没解决,不过给容器配置不同IP这个教程也比较少,所以记录一下;另:如有人碰到上述问题希望可以指点一下解决方案

    回归正文,docker默认的bridge在外部访问时,会直接访问host宿主机IP,所以如果想将docker配置另外IP,则需要network使用macvlan模式

    docker-compose.yml

    version: "3"
    
    services:
      clnmp:
        image: test_ns:latest
        container_name: test
        networks:
          web:
            ipv4_address: "192.168.0.2"
          db:
            ipv4_address: "10.10.10.2"
        environment:
          TZ: "Asia/Shanghai"
          LANG: "C.UTF-8"
        volumes:
          - "/home/conf/php.ini:/usr/local/php/etc/php.ini"
        extra_hosts:
          - "www.testdomain.com:127.0.0.1"
        restart: always
        privileged: true
        command: /bin/bash -c "/etc/init.d/php-fpm start && /etc/init.d/nginx start && tail -f /dev/null"
    
    networks:
        web:
            driver: "macvlan"
            driver_opts:
              parent: "eth0"
            ipam:
              config:
                - subnet: "192.168.0.0/24"
                #- ip_range: "192.168.0.0/24"
                #- gateway: "192.168.0.1"
        db:
           driver: "macvlan"
           driver_opts:
             parent: "eth1"
           ipam:
             config:
             - subnet: "10.10.10.0/24"
    
    

    上面配置了双网卡macvlan,通过192.168.0.X网段进行访问,通过10.10.10.X网段进行数据库读写

  • 相关阅读:
    python新建以时间命名的目录
    selenium跳过https的问题
    selenium修改控件属性
    selenium遍历控件集合
    知识库系统confluence5.8.10 安装与破解
    python3 遍历文件
    mysql更新密码为空
    CentOS7下安装配置vncserver
    Centos7搭建php+mysql环境(整理篇)
    centos7上安装与配置Tomcat7(整理篇)
  • 原文地址:https://www.cnblogs.com/seasen/p/15814288.html
Copyright © 2020-2023  润新知