系统信息
uname -a
Linux Centos7 3.10.0-1160.114.2.el7.x86_64
下载,创建映射目录,启动容器,进入管理页面 ,填入相关信息创建时
提示:错误
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused
分析是mysql数据库连接问题,分析在数据库主机这里怎么填的,NextClound容器是通过那个网段访问的是哪个数据库,是容器内部的还是宿主机上的。在宿主机上 ifconfig
ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ba:31:36:05 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker0
是 Docker 默认的虚拟网络接口,用于 Docker 容器之间的通信。
- flags:
4099<UP,BROADCAST,MULTICAST>
UP
: 接口已启用。BROADCAST
: 接口支持广播。MULTICAST
: 接口支持多播。- mtu: 最大传输单元是 1500 字节。
- inet: IP 地址是
172.17.0.1
,子网掩码是255.255.0.0
,广播地址是172.17.255.255
。- ether: 硬件(MAC)地址是
02:42:ba:31:36:05
。- RX packets/bytes 和 TX packets/bytes: 接收(RX)和发送(TX)的数据包和字节数统计。
- RX/TX errors, dropped, overruns, frame, carrier, collisions: 相关的错误和统计信息。
问题的答案:容器是通过 docker0 访问宿主机数据库。对于容器来说访问 docker0的ip:172.17.0.1就可以连接到宿主机了
再次启动测试正常
示例图