如何连接到OpenDJ LDAP服务器(Docker)

时间:2019-09-11 05:02:28

标签: docker ldap opendj

我正在尝试将Docker连接(绑定)到OpenDJ服务器。

(我知道如何连接到常规(不是Docker)OpenDJ服务器)

OpenDJ似乎正在运行,但是当我尝试使用ldap浏览器连接到它时,它显示“无法连接”

          --- Server Status ---
Server Run Status:        Started
Open Connections:         1

          --- Server Details ---
Host Name:                14e1e92e962e
Administrative Users:     cn=Directory Manager
Installation Path:        /opt/opendj
Instance Path:            /opt/opendj/data
Version:                  OpenDJ Server 4.4.3
Java Version:             1.8.0_111
Administration Connector: Port 4444 (LDAPS)

          --- Connection Handlers ---
Address:Port : Protocol               : State
-------------:------------------------:---------
--           : LDIF                   : Disabled
0.0.0.0:161  : SNMP                   : Disabled
0.0.0.0:1389 : LDAP (allows StartTLS) : Enabled
0.0.0.0:1636 : LDAPS                  : Enabled
0.0.0.0:1689 : JMX                    : Disabled
0.0.0.0:8080 : HTTP                   : Disabled

          --- Data Sources ---
Base DN:     dc=example,dc=com
Backend ID:  userRoot
Entries:     1
Replication:
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                         COMMAND                CREATED             STATUS              PORTS                          NAMES
14e1e92e962e        openidentityplatform/opendj   "/opt/opendj/run.sh"   18 hours ago        Up 18 hours 
[root@localhost ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:5ff:fe0f:a03  prefixlen 64  scopeid 0x20<link>
        ether ********  txqueuelen 0  (Ethernet)
        RX packets 5  bytes 254 (254.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 647 (647.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.89  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::1db8:91e1:5276:4f9  prefixlen 64  scopeid 0x20<link>
        ether ********  txqueuelen 1000  (Ethernet)
        RX packets 796434  bytes 512206712 (488.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 479946  bytes 41277150 (39.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# docker run -it 1e03b62c213e /bin/bash
Instance data Directory is empty. Creating new DJ instance
BASE DN is dc=example,dc=com
Password set to password
Running /opt/opendj/bootstrap/setup.sh
Setting up default OpenDJ instance

Configuring Directory Server ..... Done.
Configuring Certificates ..... Done.
Creating Base Entry dc=example,dc=com ..... Done.
Starting Directory Server ...... Done.

To see basic server configuration status and configuration, you can launch
/opt/opendj/bin/status

Server Run Status:        Started

LDAP服务器在192.168.0.89上运行,端口为1389。因此,我尝试与以下服务器连接。我也无法获取基本DN。我也尝试过手动放置BaseDN。我尝试了172.17.0.1,但是没有运气。 (这似乎是docker ip。(ifconfig))

问题: 但是使用docker,我需要一个不同的主机名吗?还是IP?还是需要其他配置设置?(顺便说一句,我将IP放在主机名中并成功连接了很多次。)

enter image description here

enter image description here

enter image description here

错误消息:

  

打开连接时出错    - 无法连接   java.lang.Exception:无法连接       在org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper $ 1.run(DirectoryApiConnectionWrapper.java:251)       在org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1312)       在org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.doConnect(DirectoryApiConnectionWrapper.java:281)       在org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.connect(DirectoryApiConnectionWrapper.java:172)       在org.apache.directory.studio.connection.core.jobs.OpenConnectionsRunnable.run(OpenConnectionsRunnable.java:111)       在org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109)       在org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

     

无法连接

2 个答案:

答案 0 :(得分:3)

您需要发布端口13891636

将docker run命令更改为

docker run -it -p 1389:1389 -p 1636:1636 <image ID> /bin/bash

您也可以在不需要host networking modeport mapping运行容器。

docker run -it --net=host <image ID> /bin/bash

希望这会有所帮助。

答案 1 :(得分:2)

查看您的docker ps命令,您不会publish任何端口

将此添加到您的docker run命令中:

-p 1389:1389 -p 1636:1636