0

我创建了一个 docker-compose 文件来部署我的 FIWARE 堆栈。该堆栈包括使用以下子网连接的 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,它们之间就没有连接。

4

1 回答 1

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

这定义了 MySQL 数据库可接受的 keyrock (172.18.1.5) 的 IP 地址。

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

MySQL 5.7文档指出:

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

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

于 2020-03-30T11:31:25.367 回答