저는 WSL에서 데비안을 사용하고 있습니다. 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