回答:
私はあなたが次のようなものでDockerコンテナを起動すると仮定します
docker run -t -i ubuntu:16.04 /bin/bash
問題は、initプロセスのPID 1が/bin/bash
systemdではなく、ということです。で確認しps aux
ます。
それに加えて、dbus withが欠落していることが通信方法です。これがエラーメッセージの送信元です。ただし、PID 1はsystemdではないため、dbusをインストールしても役に立ちません。
最善の方法は、Dockerの使用方法を再考することです。プロセスマネージャとしてsystemdに依存せず、ドッカーコンテナで目的のアプリケーションをフォアグラウンドで実行します。
docker log
ます。
/sbin/init
PID = 1プロセスであるため、このエラーを受け取っていました。--privileged=true
以下の@sonjaya sonjayaで提案されているように追加すると、問題が解決しました。
他の人も同様の問題を報告しています。ターミナルを起動して、次を入力します。
$ env
このような環境変数が表示されますか?
XDG_RUNTIME_DIR=/run/user/`id -u`
どこid -u
が一重引用符ではなくバッククォートで囲まれています。この変数は1000
、通常のユーザーおよび0
スーパーユーザー(sudo)の場合、通常は数値に再解釈されます。
環境変数XDG_RUNTIME_DIR
が存在しない場合は、作成する必要があります。完全な議論はlaunchpad systemd Answersにあります。
root
ので、変数を使用しましたがXDG_RUNTIME_DIR=/run/root/0
成功しませんでした。次に、フォルダを確認し/run
ましたが、サブフォルダはありませんでした/run/root
。とにかく、より詳細なエラーメッセージを取得できますか?私は見ていたが、systemctl --help
詳細なエラーメッセージを取得する方法を見ることができませんでした。
PID 1
ではsystemd
、DockerコンテナーでコンテナーEntrypointを使用して通常どのように置き換えられるかが(わずかにあいまいに)説明されています。
Linux用Windowsサブシステム(WSL)でこのエラーが発生している場合、Dockerがサポートされていないためだとわかりました。これは、cgroupの不足およびその他の前提条件によるものです。
これを試して:
docker run -ti -d --privileged=true images_docker "/sbin/init"
または
docker run -ti -d --privileged=true images_docker
同じ結果になります。
デフォルトでは、Dockerコンテナは「非特権」であり、たとえば、Dockerコンテナ内でDockerデーモンを実行することはできません。これは、デフォルトではコンテナはどのデバイスにもアクセスできないが、「特権」コンテナにはすべてのデバイスへのアクセスが許可されているためです(cgroupsデバイスのドキュメントを参照)。
オペレーターがdocker run --privilegedを実行すると、Dockerはホスト上のすべてのデバイスへのアクセスを有効にし、AppArmorまたはSELinuxでいくつかの構成を設定して、ホスト上のコンテナーの外部で実行されるプロセスとほぼ同じアクセスをコンテナーに許可します。--privilegedを使用した実行に関する追加情報は、Dockerブログで入手できます。
16.04 のinitのデフォルト実装であるsystemdを実行していない可能性があります。14.04からアップグレードした場合、おそらくupstartを実行している可能性が高く、systemctlコマンドを実行した結果が得られた出力になります。
systemctlでの私の答えを参照してください:comand not found 16.04 server for more。
まだdockerコンテナ内で、systemdに苦労しているならupdate-rc.dができると思います。update-rd.cを試してみましたが、動作します。
私はまったく同じエラーを受け取っていたので、それを正常に実行しました sudo
sudo systemctl status ssh
sudo
その必要はありません。偶然のようです。再テストしてもらえますか?
saif@sr-server:~$ systemctl status ssh
Failed to connect to bus: No such file or directory
saif@sr-server:~$ sudo systemctl status ssh
[sudo] password for saif:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-01-19 23:38:14 PKT; 4min 4s ago Main PID: 18222 (sshd) Tasks: 15 Memory: 32.7M CPU: 488ms
service ssh start