【问题标题】:Docker-compose keyrock mysql subnet configurationdocker-compose keyrock mysql子网配置
【发布时间】:2020-03-26 16:07:18
【问题描述】:

为了部署我的 FIWARE 堆栈,我创建了一个 docker-compose 文件。该堆栈包括使用以下子网连接的 keyrock 和 Mysql BD:

networks:
    default:
        ipam:
            config:
                - subnet: 172.18.1.0/24

我已经创建了该子网,因为在 keyrock 文档中说 keyrock 使用以下 ip:172.18.1.5

我想更改那个 keyrock IP 并更改子网。如何更改子网?如果我更改子网和 keyrock 和 mysql 默认 IP,则它们之间没有连接。

【问题讨论】:

    标签: mysql docker-compose docker-swarm fiware fiware-keyrock


    【解决方案1】:

    大概您所指的文档是示例docker-compose.yml 文件。

    keyrock:
        image: fiware/idm:7.8.0
        container_name: fiware-keyrock
        hostname: keyrock
        networks:
          default:
            ipv4_address: 172.18.1.5
    

    这定义了一个 I.P. MySQL 数据库可接受的 keyrock (172.18.1.5) 地址。

    mysql-db:
        restart: always
        image: mysql:5.7
        hostname: mysql-db
    ...
        environment:
          - "MYSQL_ROOT_HOST=172.18.1.5"
    

    MySQL 5.7 documentation 声明:

    MYSQL_ROOT_HOST:默认情况下,MySQL 创建root'@'localhost 帐户。此帐户只能从内部连接 如从内部连接到 MySQL 服务器中所述的容器 容器。要允许来自其他主机的 root 连接,请设置此 环境变量。例如,值 172.17.0.1,即 默认 Docker 网关 IP,允许来自主机的连接 运行容器。该选项只接受一个条目,但 允许使用通配符(例如,MYSQL_ROOT_HOST=172.*.*.*MYSQL_ROOT_HOST=%)

    您可以修改 I.P.地址和范围为您自己选择的值,前提是您还保持 docker ENV 变量保持一致。

    【讨论】:

    • 感谢您的评论。问题是如果我更改mysql或keyrock ip,FIWARE组件(keyrock)无法创建默认配置。但是,如果我使用默认的ip配置,当我启动服务时,Keyrock会自动在mysql中创建一个表。
    • Keyrock 一旦成功连接到 MySQL 实例,就会创建默认值。如果无法连接(或 MySQL 不允许),则不会创建默认用户,因此创建失败意味着您有连接问题。记录在案的 I.P.地址不是必需的,它只是一个工作示例。您可能应该发布您现有的 docker compose 和 keyrock 连接日志以获得进一步的建议。
    • 好的,它在本地运行良好(使用 docker-compose)。但是它不能使用 docker swarm。你能给我一个 keyrock 的例子 - 使用 docker-swarm 文件配置 mysql 吗?
    • 对不起,你能帮帮我吗?我需要使用 docker stack deploy 来部署它。提前致谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多