1. 在docker 容器内不能使用systemctl 命令启动服务
现象:
[root@ce34e8bc6b92 software]# systemctl stop mariadb
Failed to get D-Bus connection: Operation not permitted
解决:
[root@iz2zed0v3yp9bn8rczl7soz ~]# docker run -d -p 6607:6607 --privileged -v /data/mariadb/db/:/data/mariadb/db/ mariadb6607 /usr/sbin/init
2. docker容器内,在/etc/rc.d/rc.local 中 设置启动命令,不能正常启动
解决:因为linux启动流程,是init脚本先执行,最后再执行rc.local中的命令
docker启动方式:docker run -d -v /data/fastdfs/:/data/fastdfs/ 402cde281a03 /usr/sbin/init
3. docker mariadb galera 中的 bind-address=宿主机IP
一般是不会出现这种情况的,我的是因为我在两个宿主机上分别跑了一个mariadb的docker。
数据库端口一样,而doker分配的ip又都是172.17.0.2。
为了避免冲突,我把ip都改为宿主机的ip了。
所以在远程连接数据库时,端口拒绝
解决: 容器IP!= 宿主机IP
4. 基于docker 搭建fastdfs时,发现客户端不能连接tracker告知的storage IP.
因为storage IP 是容器分配内部ip,由于docker网络默认是bridge,客户端一般是访问不到的。
解决: 目的就是让客户端能访问到storage注册的IP,我用的解决方式就是使用docker的host网络模式。