首页 > 解决方案 > 容器没有ip地址,我们如何从本地客户端连接到mysql服务器容器

问题描述

我想重现这个例子

运行一个mysql容器。

podman run -d -e MYSQL_ROOT_DATABASE=123 mysql:8.0.25

验证容器的ip地址

podman inspect <id>

然后我们可以使用宿主机中的任意数据库客户端,通过这个参数访问容器中的mysql数据库:

我的步骤:

[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 ~]$ 

标签: containersip-addressfedorapodmanredhat-containers

解决方案


我犯了一个错误。我使用我的管理用户切换到超级用户,并且容器有一个 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]# 



推荐阅读