DockerコンテナーでUbuntu 18.04イメージを実行しています。ログインしてインストールしましたOpenresty。 systemdもインストールされています。コマンド "systemctl"を使用すると、次のエラーが発生します。
System has not been booted with systemd as init system (PID 1). Can't operate.
どうすれば修正できますか?
端末で次のように入力できます。
$ Sudo dockerd
そして魔法が起こります
だから、他のターミナルを開いて試してみてください
$ docker ps -a
それでも権限に問題がある場合は、次を実行します。
$ Sudo usermod -aG docker your-user
OPを理解している場合、彼はsystemctlwithinをコンテナーで実行しようとしています。もともとコンテナー内でsystemdが実行されていないため、これは機能しません。非特権コンテナでは実行できません。 SO about なぜ彼はコンテナ内でsystemdを実行すべきではないのか に別の質問があります。
私はすぐにググって、2014年のこのページについて dockerのコンテナー内でsystemdを使用 について簡単な説明があります。修正は、特権コンテナ(docker run --privileged ...
)、それは間違いなく悪い考えですが、OPに合うかもしれません。 2019 その最後の記事の更新 があり、最終的には、彼らが独自のコンテナエンジンを開発した(したがって、Dockerはありません)。
明白な解決策は、単一のサービスを持つことです。そのため、systemdは必要ありませんが、OPの場合は不可能かもしれません。
要約すると、可能な解決策:
使用しようとしましたか:Sudo /etc/init.d/docker start
systemdの代わりに?
同様の問題があり、それで解決します。