Systemd(systemctl)を使用せずに、CentOS/Fedoraディストリビューションでサービスを開始し、起動後に実行することは可能ですか?はいの場合、どのように?
Systemdは、非特権のDockerコンテナーでは機能しません。したがって、この時点では、特権コンテナー内でのみサービスを開始できます。
ありがとう。
優れたプロジェクトがあります--- docker-systemctl-replacementsystemdなしでサービスを開始/停止するための代替のsystemctl
コマンドを取得できます。
systemctl
置換は、元のsystemctl
の完全な再実装ではありませんが、実際にはかなりうまく機能します。
次のようにインストールできます。
wget https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py -O /usr/local/bin/systemctl
一般的に、現在のモデルは、コンテナー内の単一プロセスとしてアプリケーションを直接開始するだけです。このアプローチには欠点がありますが、コンテナ化の取り組みの現在の主な考え方でもあるようです。
他のモデル(より多くのサポートインフラストラクチャが実行されている軽量VMのようなものとしてのコンテナ)も便利ですが、現在(私はFedoraで作業しています)、マルチサービスコンテナ用の組み込み/定義済みモデルはありません。 systemd。最終的には、権限のないコンテナでもsystemdを動作させることが目標です。 (アップストリームの計画については コンテナインターフェースの仕様 を参照してください。または Fedoraでの作業のクイックアップデートを提供するDan Walshからのこの投稿 )。 —たとえば このブログ投稿 を参照してください。