如何在启动时加载LDAP Docker容器数据

Fez*_*ezo 6 config ldap openldap docker

我想在Docker容器上安装LDAP服务器,我已经使用了dinkel / openldaposixia / openldapmuzili / ldap docker映像,到目前为止,连接和第一个配置都可以。

我的问题是:尽管我挂载了容器的/ var / lib / ldap和/ etc / ldap,但是在停止,终止或删除ldap容器(安全删除,没有-v的docker rm)之前总是需要备份,否则会有数据失利。而且它似乎并没有遍历所有配置文件,因为它在开始时也需要导入数据。

我认为我可能会遇到docker容器及其卷安装的问题,但其他所有容器安装都成功了,而ldap容器似乎只有问题。

有什么解决方案可以使它正常工作吗?(在启动时通过从装入的文件夹中读取而不丢失数据进行配置?)

BMW*_*BMW 2

您可以先启动另一个容器来备份文件夹。

假设 ldap 容器名为ldap,它有两个卷:/var/lib/ldap & /etc/ldap,使用以下命令,您可以轻松备份它们。

docker run --volumes-from ldap -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar  /var/lib/ldap  /etc/ldap
Run Code Online (Sandbox Code Playgroud)

如果运行新容器时需要输入一些配置,请考虑使用ONBUILD命令更新 Dockerfile,例如:

ONBUILD cp . /etc/ldap
ONBUILD COMMAND you'd like to run
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,您的图像可以保持不变(不需要重新构建),但是当您启动容器时,它将在启动容器时将设置输入到 /etc/ldap ,并在之后运行一些命令。

参考:

管理容器中的数据

Dockerfile 参考