私はWSLでDebianを使用しています。 Nixはすでにインストールされています。
次のコマンドを使用してdockerをインストールしました。
nix-env -iA nixpkgs.docker
デーモンプロセスを開始したい。
systemctl start docker
バスに接続できません。そのファイルやディレクトリはありません。
修正する
参照用 $XDG_RUNTIME_DIR= /mnt/wslg/runtime-dir $UID=1000 $DBUS_SESSION_BUS_ADDRESS 値なし
ls -l /mnt/wslg/runtime-dir
drwx------ 4 PierrePierre120 12月26日 00:41 ランタイムディレクトリ
バスに乗れます。しかし、sudoを使用する必要があります。
sudo systemctl start docker
今私にはこの問題があります。
docker.serviceを起動できません。ユニットdocker.serviceが見つかりません。
私の考えでは、docker.serviceは/etc/systemd/system/docker.serviceファイルです。
しかし、私のOSには存在しません。 nixを使ってdockerを削除して再インストールしてみました。役に立たない
私はこれが関連していると思います:
https://discourse.nixos.org/t/docker-packages-systemd-unit-files-dont-work-on-ubuntu/12160
sudo cp ~/.nix-profile/etc/systemd/system/docker.service /etc/systemd/system/docker.service
sudo cp ~/.nix-profile/etc/systemd/system/docker.sock /var/run/docker.sock
sudo systemctl enable docker
Failed to start docker.service: Unit docker.socket not found.
docker.serviceを起動できません。ユニットdocker.socketが見つかりません。
この記事を読んだ後協会、docker.socketファイルを置き換える場所を知るには、このコマンドを使用します。 :
systemctl list-sockets --all
しかし、docker.socketはリストされていません。
**直す
すべてのコマンドを最初から作成しました。これで、docker.serviceの依存関係操作が失敗する問題があります。詳細については、「journalctl -xe」を参照してください。
答え1
質問が正しく理解されている場合は、手動で設定する必要がありますXDG_RUNTIME_DIR
(/run/user/...
時々他のユーザーが所有していることもあるためです(正直にはわかりません))。
では、nixを設定しXDG_RUNTIME_DIR = "/run/user/$UID"
て再起動してみますか?
それでも機能しない場合は、に設定する必要がDBUS_SESSION_BUS_ADDRESS
ありますDBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
。
ここであなたと同様のスレッドを見つけることができます。 https://superuser.com/questions/1561076/systemctl-user-failed-to-connect-to-bus-no-such-file-or-directory-debian-9
これが役に立ちましたか、問題を解決しましたか?
答え2
ディレクトリを見つけてプログラムがある場所cd ..
に移動し、またはsystemctl startを使用してdockerを起動する必要があります。/bin/
./docker
答え3
sudo groupadd docker
sudo chgrp docker docker.sock
sudo systemctl start docker
エラーメッセージなし
答え4
docker.service
起動パラメータの変更などのデフォルト値を変更する必要があります。
[Unit]
...
Requires=~/.nix-profile/etc/systemd/system/docker.socket
[Service]
...
ExecStart=/home/xx/.nix-profile/bin/dockerd -H unix:///var/run/docker.sock
たぶん再ロードする必要があります。
sudo systemctl daemon-reload