容器化部署LDAP和PHP-LDAP-Admin可以帮助你在Docker环境中快速搭建和管理LDAP服务。
1. 部署OpenLDAP容器
password='123456'
docker run \-d -p 389:389 -p 636:636 \--name openldap \--restart=always \--hostname openldap \-v /data/docker_tmp/openldap/slapd/database:/var/lib/ldap \-v /data/docker_tmp/openldap/slapd/config:/etc/ldap/slapd.d \--env LDAP_ORGANISATION="ev5.top" \--env LDAP_DOMAIN="ev5.top" \--env LDAP_BASE_DN="dc=ev5,dc=top" \--env LDAP_ADMIN_PASSWORD=$password \registry.cn-beijing.aliyuncs.com/zygpubilc/openldap:2.4.57
解释:
-p 389:389
:映射容器的389端口,提供LDAP的非加密访问。-p 636:636
:映射容器的636端口,提供SSL加密的LDAP访问。--name openldap
:容器名称设置为openldap
。--restart=always
:容器会在异常退出或主机重启后自动重启。--hostname openldap
:设置容器内部的主机名称为openldap
。-v /data/docker_tmp/openldap/slapd/database:/var/lib/ldap
:将LDAP数据持久化存储到本地主机的指定目录,确保容器重启或更新时数据不会丢失。-v /data/docker_tmp/openldap/slapd/config:/etc/ldap/slapd.d
:将LDAP配置文件持久化到本地,方便管理和备份配置。--env LDAP_ORGANISATION="ev5.top"
:指定LDAP的组织名称,通常是公司的名称。--env LDAP_DOMAIN="ev5.top"
:配置LDAP域名,作为LDAP目录树的顶端。--env LDAP_BASE_DN="dc=ev5,dc=top"
:配置LDAP的基础DN,定义LDAP的目录结构根。--env LDAP_ADMIN_PASSWORD=$password
:设置管理员密码,密码可以通过环境变量传递,保持灵活性。
2. 部署PHP-LDAP-Admin容器
docker run \-p 8082:80 \--name ldapadmin \--link openldap:ldap \--env PHPLDAPADMIN_LDAP_HOSTS=ldap \--env PHPLDAPADMIN_HTTPS=false \--detach registry.cn-beijing.aliyuncs.com/zygpubilc/phpldapadmin:0.8.0
解释:
-p 8082:80
:映射容器的80端口到主机的8082端口,通过浏览器访问http://<主机IP>:8082
管理LDAP。--name ldapadmin
:将容器命名为ldapadmin
。--link openldap:ldap
:通过Docker的--link
参数,将ldapadmin
容器连接到openldap
容器,使得ldapadmin
可以通过ldap
名称访问LDAP服务。--env PHPLDAPADMIN_LDAP_HOSTS=ldap
:设置phpLDAPadmin连接的LDAP服务器主机名为ldap
,即上面openldap
容器。--env PHPLDAPADMIN_HTTPS=false
:禁用HTTPS,方便测试环境下的使用。--detach
:后台运行容器。
访问与管理
- 启动完容器后,可以通过LDAP客户端或
phpLDAPadmin
管理界面对LDAP进行管理。 - 打开浏览器,访问
http://<主机IP>:8082
,进入phpLDAPadmin界面,使用cn=admin,dc=ev5,dc=top
和管理员密码登录管理LDAP。