docker容器中的mariadb grant table:hostname和ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器中的mariadb grant table:hostname和ip相关的知识,希望对你有一定的参考价值。

我在docker容器中运行mariadb实例。它连接到自定义桥接网络。我们在这里称之为db_net。现在我想从连接到同一网络的另一个容器连接到mariadb

我可以用mariadb从另一个容器中ping出ping mariadb.db_net容器。它解决了一些172.x.x.x IP。

使用数字IP在mariadb中设置授权表有效。但显然这些可能会在修改后的设置中发生变化我也想避免使用所有通配符(例如172.%.%.%),因为其他容器也可能使用相同的mariadb实例。

在授权表中使用符号主机名(name.db_net)失败。

推荐的解决方法是什么?使用主机字段中的所有通配符并依赖其他隔离机制当然可以工作,但似乎这样做我放弃了一层可取的安全性。

答案

有时嵌入式DNS无法正常使用Linux服务。最好的方法是DNS将主机名解析为IP地址。它可以通过修改/ etc / hosts文件或使用第三方DNS服务器来实现。这将确保每当IP地址更改时,数据库权限仍然可以正常工作。

如果您选择在docker网络中设置DNS服务器,则必须使用该选项启动每个容器。

--dns=IP_ADDRESS

然后,提供的地址将写入docker容器上的文件/etc/resolv.conf

以上是关于docker容器中的mariadb grant table:hostname和ip的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 Docker 访问一个 Docker 中的 MariaDB

从 mariadb:10 切换到 mariadb:10.4 映像时,docker 容器不断重启

其他用户无法访问 docker 中的 mariadb,然后是 root

mariadb 作为 docker 容器 - 主机挂载绑定上的启动损坏

云原生之使用Docker部署Mariadb数据库

Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin