Docker

無法為 openldap 服務建構工作的 docker 映像

  • January 3, 2022

我是 docker 新手,我正在做一些試驗。

我試圖為 openldap 服務創建一個 docker 映像。我嘗試從官方 docker repos 提供的 debian:latest 圖像開始創建圖像。

這是我的 Dockerfile 的內容

FROM debian
RUN DEBIAN_FRONTEND="noninteractive" apt-get update
RUN DEBIAN_FRONTEND="noninteractive" apt-get install --yes --no-install-recommends slapd ldap-utils
RUN apt-get clean

我試圖創建一個基於此圖像的容器

docker container run --interactive --tty --name=prova image

image是從上面的 Dockerfile 建構的映像的名稱。當我嘗試執行 slapd 時,service slapd start出現以下錯誤:

[614.896012] Out of memory: Killed process 4005 (slapd) total-vm: 795276KB, anon-rss:334664KB, file-rss:8KB, shmem-rss:0kB, UID:101, pgtables:1108kB, oom_score_adj:0 

所以這似乎是一個核心錯誤,由於記憶體中的程序爆炸,雖然我不明白是什麼原因造成的,但相同的 ldap 服務在主機系統或我創建的 kvm 虛擬機中執行良好。

我還嘗試在從debian:latest圖像創建的實時容器中安裝 openldap,我得到了同樣的錯誤。

所以這是我的問題:誰能解釋這裡發生了什麼以及導致錯誤的原因?謝謝你的幫助。

在 docker 容器內執行service slapd start可能會浪費一些資源,在你的情況下是記憶體,因為它需要執行 initd 和一些 shell 程序,從而比單程序容器更快地觸發 oom-killer。

您可以Dockerfile從使用良好的 openldap docker 映像中檢查

$$ 1 $$,直接執行slapd程序。 如果您正在準備用於生產用途的映像,您還應該考慮備份和 TLS,它們支持osixia/docker-openldap

$$ 1 $$和docker-openldap-backup $$ 2 $$ $$ 1 $$ https://github.com/osixia/docker-openldap $$ 2 $$ https://github.com/osixia/docker-openldap-backup

引用自:https://serverfault.com/questions/1088786