centos 7 docker 使用填坑

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网络模式。

你可能感兴趣的:(centos 7 docker 使用填坑)