docker安装openldap
openldap docker 安装有 bitnami 和 osixia 2种常用的镜像
使用 osixia
镜像
osixia openldap docker github地址
启动容器
提示
需要持久化2个目录
/var/lib/ldap
: ldap数据库文件目录/etc/ldap/slapd.d
: ldap配置文件目录
- docker
- docker compose
docker run \
-d \
-p 389:389 \
-p 636:636 \
-v /data/docker-volume/openldap/data:/var/lib/ldap \
-v /data/docker-volume/openldap/config:/etc/ldap/slapd.d \
-e LDAP_ORGANISATION="ops" \
-e LDAP_DOMAIN="ops.com" \
-e LDAP_ADMIN_PASSWORD="admin" \
--name openldap \
--hostname openldap \
--network bridge \
--restart=always \
osixia/openldap:1.5.0
cat > docker-compose.yaml << EOF
services:
openldap:
image: osixia/openldap:1.5.0
container_name: openldap
hostname: openldap
restart: always
environment:
LDAP_ORGANISATION: "ops"
LDAP_DOMAIN: "ops.com"
LDAP_ADMIN_PASSWORD: "admin"
ports:
- "389:389"
- "636:636"
volumes:
- /data/docker-volume/openldap/data:/var/lib/ldap
- /data/docker-volume/openldap/config:/etc/ldap/slapd.d
networks:
- bridge
networks:
bridge:
driver: bridge
EOF
变量说明
参数 | 说明 |
---|---|
--env LDAP_ORGANISATION | ldap组织名称 |
--env LDAP_DOMAIN | ldap域名称 |
--env LDAP_ADMIN_PASSWORD | ldap管理员密码 |
可以执行如下命令在容器中进行搜索
docker exec 容器名称 ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w 密码
输出结果
$ docker exec openldap ldapsearch -x -H ldap://localhost -b dc=ops,dc=com -D "cn=admin,dc=ops,dc=com" -w admin
# extended LDIF
#
# LDAPv3
# base <dc=pptfz,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# pptfz.com
dn: dc=pptfz,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: pptfz
dc: pptfz
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
使用 bitnami
镜像
如有问题可以在 bitnami containers 提
创建network
docker network create ldap-net
启动容器
- docker
- docker compose
说明
如果使用宿主机目录显式指定,即 -v /data/docker-volume/openldap:/bitnami/openldap
,则需要设置宿主机目录权限为1001
chown -R 1001:1001 /data/docker-volume/openldap
,否则会报错 mkdir: cannot create directory '/bitnami/openldap/data': Permission denied
docker run -d \
--name openldap \
--network ldap-net \
-p 389:1389 \
-p 636:1636 \
-e LDAP_ROOT="dc=ops,dc=com" \
-e LDAP_ADMIN_USERNAME="admin" \
-e LDAP_ADMIN_PASSWORD="admin" \
-e LDAP_ALLOW_ANON_BINDING=no \
-v openldap_data:/bitnami/openldap \
bitnami/openldap:2.6.10
cat > docker-compose.yaml << EOF
services:
openldap:
image: bitnami/openldap:2.6.10
container_name: openldap
restart: always
ports:
- "1389:389"
- "1636:636"
environment:
- LDAP_ROOT=dc=ops,dc=com
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=admin
- LDAP_ALLOW_ANON_BINDING=no
volumes:
- openldap_data:/bitnami/openldap
networks:
- ldap-net
volumes:
openldap_data:
networks:
ldap-net:
driver: bridge
EOF
变量说明
变量 | 说明 |
---|---|
LDAP_ROOT | baseDN,默认值 dc=example,dc=org |
LDAP_ADMIN_USERNAME | ldap管理员用户名,默认值 admin |
LDAP_ADMIN_PASSWORD | ldap管理员密码,默认值 adminpassword |
LDAP_ALLOW_ANON_BINDING | 禁止匿名用户登录 |
使用 bitnami
镜像启动的openldap,默认会有2个ou, ou=groups
和 ou=users