1. 程式人生 > 實用技巧 ># 2021-01-11 #「Docker」- 在容器中執行systemd程序

# 2021-01-11 #「Docker」- 在容器中執行systemd程序

問題背景

在最開始,我在筆記本中執行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

參考文獻