1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rootless Docker install トラブル(debian stretch)

Posted at

Rootless Docker install時にsystemdが検出されずdaemonの起動を設定してくれない

環境

OS: Debian stretch
systemd: systemd 232

エラーの発生方法

  • systemctl --user daemon-reloadが成功しない状態で、curl -sSL https://get.docker.com/rootless | shを実行する
  • Rootless Dockerのinstallには成功するが systemd not detected, dockerd daemon needs to be started manuallyと表示され、deamonの起動は手動で行うように促される

原因

systemctl --user daemon-reloadが成功しない状態だと、インストールスクリプトのsystemd検出処理が働かず、systemd用のセッティングがなされないため

if systemctl --user daemon-reload >/dev/null 2>&1; then
SYSTEMD=1
https://get.docker.com/rootless

経緯

  • RootlessDocker(参考1 参考2)を使おうと思った
  • Debian stretchをクリーンインストール
  • 一般ユーザーでログイン
  • curl -sSL https://get.docker.com/rootless | shを実行
  • 上述の問題が発生

解決

  1. systemctl --userが失敗するを解決する
  2. 先のinstallで.bashrcに設定を追記している場合は、削除する
  3. systemctl --user daemon-reloadが成功することを確認する
  4. curl -sSL https://get.docker.com/rootless | shを再び実行する

systemctl --userが失敗する

via: http://hirai.me/memo.html#systemctl-user

環境

OS: Debian stretch
systemd: systemd 232

エラーの発生方法

  • systemd --userが起動していない状態でsystemctl --userを叩くとFailed to connect to bus: No such file or directory
  • rootlessdockerのインストールスクリプトがsystemdを検出しない状態で終了した際のexport XDG_RUNTIME_DIR=/tmp/docker-1000の環境変数設定を.bashrcに書いてしまった状態でsystemctl --userの実行(こちらは後述の解決法をやってもエラーが出続けるため、.bashrcから、rootlessdockerのインストールスクリプト由来の設定をすべて削除すること

原因

  • systemd --user が起動していない場合、 systemd サービスに接続できないことでエラーが発生する。
  • systemd --user 自体は /lib/systemd/system/user@.service から起動されており、 libpam-systemd とは直接関係はない
  • ただし、 libpam-systemd がインストールされていない状態では、 systemd --user は、必要なディレクトリや環境変数が足りず起動できない
  • libpam-systemd でインストールされる pam_systemd モジュールは、 systemd --user の起動に必要な環境変数やディレクトリを設定する
  • 結果的に、 libpam-systemd をインストールすると、 systemd --user が起動できるようになり、 systemctl --user からユーザーサービスが起動できるようになる

http://hirai.me/memo.html#systemctl-user

対処法

  1. sudo apt install pam_systemd
  2. マシン再起動
  3. root@ # systemctl status user@1000でactiveになっていることを確認
  4. user@ $ systemctl --userが正常動作することを確認
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?