docker 容器搭建 openldap, phpldapadmin
实验环境: centos7 操作系统, ip 10.2.7.100, docker 17.03.3-ce,
openldap 镜像: osixia/openldap:1.2.5
phpldapadmin 镜像:osixia/phpldapadmin:0.8.0
安装 openldap
docker run -p 389:389 -p 636:636 \
--volume /data/slapd/database:/var/lib/ldap \
--volume /data/slapd/config:/etc/ldap/slapd.d \
--env LDAP_DOMAIN=example.io \
--env LDAP_ADMIN_PASSWORD=ldap123 \
--name my-openldap --detach osixia/openldap:1.2.5
安装 phpldapadmin(PHPLDAPADMIN_LDAP_HOSTS 必须使用外部 ip,openstack vm 必须使用 fip)
docker run -p 6443:443 --env PHPLDAPADMIN_LDAP_HOSTS=10.2.7.100 --name phpldapadmin\
--detach osixia/phpldapadmin:0.8.0
验证
docker exec my-openldap ldapsearch -x -H ldap://10.2.7.100 -b dc=example,dc=io -D "cn=admin,dc=example,dc=io" -w ldap123
或者安装 openldap clients, 使用 ldapsearch 命令
yum install -y openldap-clients
ldapsearch -x -H ldap://10.2.7.100 -b dc=example,dc=io -D "cn=admin,dc=example,dc=io" -w ldap123
浏览器登陆 (记得开启 6443,389,636 等端口或者关闭防火墙),注意这里的 htttps,不是 http
https://10.2.7.100:6443
username: cn=admin,dc=exapmle,dc=io
password: ldap123
ldap 数据备份
数据目录存放在:/data/slapd/,docker 容器通过挂载可以直接使用
记得定期备份
问题
在 centos 7.9.2009, kernal 5.4.139-1.el7.elrepo.x86_64 使用上面的方法,在登录 phpldapadmin 时出现 invalid user and password 问题,可能是容器网络造成的,这里直接在启动容器的时候使用宿主机网络,
docker run --network host \
--volume /data/slapd/database:/var/lib/ldap \
--volume /data/slapd/config:/etc/ldap/slapd.d \
--env LDAP_DOMAIN=example.io \
--env LDAP_ADMIN_PASSWORD=ldap123 \
--name my-openldap --detach osixia/openldap:1.2.5
docker run --network host --env PHPLDAPADMIN_LDAP_HOSTS=10.2.7.100 --name phpldapadmin \
--detach osixia/phpldapadmin:0.8.0
直接登录 https://10.2.7.100:443 即可,注意这里的 htttps,不是 http