containers - 容器没有ip地址,我们如何从本地客户端连接到mysql服务器容器
问题描述
我想重现这个例子,
运行一个mysql容器。
podman run -d -e MYSQL_ROOT_DATABASE=123 mysql:8.0.25
验证容器的ip地址
podman inspect <id>
然后我们可以使用宿主机中的任意数据库客户端,通过这个参数访问容器中的mysql数据库:
- 用户:根
- 密码:123
- 主机:容器 IP 地址
我的步骤:
[chris@fedora ~]$ podman run -d -e MYSQL_ROOT_PASSWORD=123 mysql:8.0.25
6d008dbd5ad24a49ad1a63d1ccc688bbad3af0703cbd45f0560a340bd5b722e5
[chris@fedora ~]$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d008dbd5ad2 docker.io/library/mysql:8.0.25 mysqld 4 seconds ago Up 4 seconds ago practical_edison
[chris@fedora ~]$ podman inspect |grep IPAddress
Error: no names or ids specified
[chris@fedora ~]$ podman inspect practical_edison |grep IPAddress
"IPAddress": "",
[chris@fedora ~]$
并且mysql容器中没有IP地址。
podman 有另一种方法吗?
有没有更好或更安全的方法来实现它?
信息:
[chris@fedora ~]$ podman --version
podman version 3.1.2
[chris@fedora ~]$
[chris@fedora ~]$ uname -a
Linux fedora 5.12.9-300.fc34.x86_64 #1 SMP Thu Jun 3 13:51:40 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[chris@fedora ~]$
解决方案
我犯了一个错误。我使用我的管理用户切换到超级用户,并且容器有一个 IP 地址,也许在过去我只使用
sudo podman run...
总之,切换到超级用户
sudo su
insert your password
现在容器确实在那里有 IP 地址。你可以使用管道和grep
命令
podman inspect <id or name> |grep IPAddress
[root@fedora chris]# podman run -d -e MYSQL_ROOT_PASSWORD=123 mysql:8.0.25
a886b4b43446513d75734925b374c0428c7e507dcc2e73ca0cc704c7f51c8789
[root@fedora chris]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a886b4b43446 docker.io/library/mysql:8.0.25 mysqld 6 seconds ago Up 6 seconds ago suspicious_wright
[root@fedora chris]# podman inspect suspicious_wright |grep IPAddress
"IPAddress": "10.88.0.4",
"IPAddress": "10.88.0.4",
[root@fedora chris]#
推荐阅读
- ios - ViewWillAppear 不调用模态视图控制器的解雇
- java - Spring MVC 和 Thymeleaf:如何在迭代后获取列表对象的值
- python - 使用 requests.get 调用 API 后,如何从返回的 JSON 对象中替换键的值?
- excel - 返回原始单元格的下一行,指定扫描值的起始字符
- javascript - 使用 Protractor 使用部分文本来控制重定向
- ios - 在 Xcode 10.1 中创建和使用 swift 静态库
- sql - 根据自以来的天数分组为系列
- android - 应用程序显示两个无障碍服务,即使清单中只注册了一个
- c# - 为什么没有加载对象的颜色?
- php - 如何将我的 Mysqli 绑定结果之一放入数组中以使用 in_array() 函数进行匹配?