# 2021-01-11 #「Docker」- 在容器中執行systemd程序
阿新 • • 發佈:2021-01-11
問題背景
在最開始,我在筆記本中執行KVM虛擬機器。每次休眠恢復時,在KVM中的虛擬機器就會帶來大量的CPU負載。
另外我使用的Linux發行版是Debian Testing分支。由於某些服務是特定於發行版名稱的,所以這些服務沒有辦法安裝。使用Docker也可以,因此也不是必須使用虛擬機器才可以。
但是,如果使用Docker映象,一個容器啟動一個服務,那麼我有很多服務豈不是要啟動很多容器。
因此才有了這個想法:啟動容器,執行systemd程序,使用systemctl進行服務管理,把容器當作虛擬機器使用。(這可能違背了容器的最佳實踐,但是那只是最常用的場景。在我的場景中,我的做法就是最佳實踐。任何食材都具有多種烹飪方法)
本文將介紹如何在Docker Container中執行“systemd”程序,來進行系統及服務管理。
解決辦法
執行如下命令:
#!/bin/sh docker run -it \ --name vm-centos \ --hostname vm-centos \ --env container=docker \ --tmpfs /run \ --tmpfs /tmp \ --volume /sys/fs/cgroup:/sys/fs/cgroup:ro \ --cap-add SYS_ADMIN \ centos:7 /sbin/init
參考文獻
- WikiNotes/在容器中執行systemd程序
- Is there any concrete and acceptable solution for running systemd inside the docker container?