web-dev-qa-db-ja.com

Dockerシステムがsystemdでinitシステムとして起動されていません

DockerコンテナーでUbuntu 18.04イメージを実行しています。ログインしてインストールしましたOpenrestysystemdもインストールされています。コマンド "systemctl"を使用すると、次のエラーが発生します。

System has not been booted with systemd as init system (PID 1). Can't operate.

どうすれば修正できますか?

6
Abdol Seed

端末で次のように入力できます。

$ Sudo dockerd

そして魔法が起こります

だから、他のターミナルを開いて試してみてください

$ docker ps -a

それでも権限に問題がある場合は、次を実行します。

$ Sudo usermod -aG docker your-user
1
Felipe Augusto

OPを理解している場合、彼はsystemctlwithinをコンテナーで実行しようとしています。もともとコンテナー内でsystemdが実行されていないため、これは機能しません。非特権コンテナでは実行できません。 SO about なぜ彼はコンテナ内でsystemdを実行すべきではないのか に別の質問があります。

私はすぐにググって、2014年のこのページについて dockerのコンテナー内でsystemdを使用 について簡単な説明があります。修正は、特権コンテナ(docker run --privileged ...)、それは間違いなく悪い考えですが、OPに合うかもしれません。 2019 その最後の記事の更新 があり、最終的には、彼らが独自のコンテナエンジンを開発した(したがって、Dockerはありません)。

明白な解決策は、単一のサービスを持つことです。そのため、systemdは必要ありませんが、OPの場合は不可能かもしれません。

要約すると、可能な解決策:

  • systemdを使用しない
  • 特権コンテナを使用する
  • ドッカーを使用しない
0
Javier Gonzalez

使用しようとしましたか:Sudo /etc/init.d/docker start systemdの代わりに?

同様の問題があり、それで解決します。

0
Samuel Simonney