Docker
無法為 openldap 服務建構工作的 docker 映像
我是 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