ubuntuusers.de

Socket-Problem?

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Mirulan

Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

Hallo liebe Leute!

ich bin neu hier und kämpfe gerade mit der Installation von Docker auf Ubuntu 24.04 LTS. Ich hoffe, dass ich hier in der Abteilung richtig bin, ansonsten entschuldige ich mich.

wenn ich ein "docker -v" oder ein "docker context ls" als user in der docker-Gruppe absetze, dann klappt das!

Aber, wenn ich ein "docker image ls" absetze, kommt "Cannot connect to the docker daemon ..."

Ich habe nun mehrere Anleitungen aus dem Netz durch, die mehr oder minder immer wieder das gleiche sagen, aber keiner erklärt mir mein spezielles Problem.

Wir haben docker.io aus der Distribution installiert und was mir aufgefallen ist, ist dass unter /var/run/user/1000/ KEIN docker.sock ist. systemd sagt docker.service, docker.sock und containerd.service sind am laufen.

Auch habe ich versucht die DOCKER_HOST Umgebungsvariable zu setzen, leider ohne Erfolg.

Ich weiß ehrlich gesagt nicht mehr weiter, deshalb bin ich hier aufgeschlagen.

Ich bedanke mich schon mal im voraus für Eure Postings und verbleibe

mit freundlichen Grüßen

Mirulan

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14346

Mirulan schrieb:

... was mir aufgefallen ist, ist dass unter /var/run/user/1000/ KEIN docker.sock ist. systemd sagt docker.service, docker.sock und containerd.service sind am laufen.

Siehe z. B. die Ausgaben von:

systemctl --user list-units --type=socket

und von:

systemctl list-units --type=socket

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6497

Auch wenn es deine Frage nicht direkt trifft:

Ich habe mit der Docker-Installation aus den Ubuntu Paketquellen bisher keine gute Erfahrungen gemacht und installiere deshalb immer aus https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository .

Gruß BillMaier

Mirulan

(Themenstarter)
Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

Hallo lubux.

Auf sudo systemctl --user list-units --type=socket

kommt

Failed to connect to bus: No medium found

und für sudo systemctl list-units --type=socket

kommt

  acpid.socket                    loaded active listening ACPID Listen Socket
  cloud-init-hotplugd.socket      loaded active listening cloud-init hotplug hook socket
  dbus.socket                     loaded active running   D-Bus System Message Bus Socket
  dm-event.socket                 loaded active listening Device-mapper event daemon FIFOs
  docker.socket                   loaded active running   Docker Socket for the API
  iscsid.socket                   loaded active listening Open-iSCSI iscsid Socket
  lvm2-lvmpolld.socket            loaded active listening LVM2 poll daemon socket
  lxd-installer.socket            loaded active listening Helper to install lxd snap on demand
  multipathd.socket               loaded active running   multipathd control socket
  snapd.socket                    loaded active listening Socket activation for snappy daemon
  ssh.socket                      loaded active running   OpenBSD Secure Shell server socket
  syslog.socket                   loaded active running   Syslog Socket
  systemd-fsckd.socket            loaded active listening fsck to fsckd communication Socket
  systemd-initctl.socket          loaded active listening initctl Compatibility Named Pipe
  systemd-journald-dev-log.socket loaded active running   Journal Socket (/dev/log)
  systemd-journald.socket         loaded active running   Journal Socket
  systemd-networkd.socket         loaded active running   Network Service Netlink Socket
  systemd-rfkill.socket           loaded active listening Load/Save RF Kill Switch Status /dev/rfkill Watch
  systemd-sysext.socket           loaded active listening System Extension Image Management (Varlink)
  systemd-udevd-control.socket    loaded active running   udev Control Socket
  systemd-udevd-kernel.socket     loaded active running   udev Kernel Socket
  uuidd.socket                    loaded active listening UUID daemon activation socket

Zumindest ist die docker.socket im zweiten Fall da. Aber danke für die neuen Befehle, denn ich finde, dass systemd suboptimal dokumentiert ist.

Lieben Gruß, Mirulan

Mirulan

(Themenstarter)
Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

Hallo BillMaier.

Danke für den Tip. Wenn ich es nicht über den ersten Weg hinkriege dann versuche ich es über deinen.

Liebe Grüße, Mirulan.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14346

Mirulan schrieb:

Hallo lubux.

Auf sudo systemctl --user list-units --type=socket

kommt

Failed to connect to bus: No medium found

Du denkst wohl, sudo kann nicht schaden und soll deshalb immer benutzt werden, oder? 😉

Es geht um user-units/sockets (nicht die von root/system) und deshalb ohne sudo:

systemctl --user list-units --type=socket

Mirulan

(Themenstarter)
Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

lubux schrieb:

Du denkst wohl, sudo kann nicht schaden und soll deshalb immer benutzt werden, oder? 😉

Ne ich hielt systemctl für einen Adminbefehl und habe deshalb das sudo davorgesetzt, dass er auch als USER-Befehl funktioniert, habe ich jetzt gelernt!

systemctl --user list-units --type=socket


sagt:

  dbus.socket                loaded active listening D-Bus User Message Bus Socket
  dirmngr.socket             loaded active listening GnuPG network certificate management daemon
  gpg-agent-browser.socket   loaded active listening GnuPG cryptographic agent and passphrase cache (access for web browsers)
  gpg-agent-extra.socket     loaded active listening GnuPG cryptographic agent and passphrase cache (restricted)
  gpg-agent-ssh.socket       loaded active listening GnuPG cryptographic agent (ssh-agent emulation)
  gpg-agent.socket           loaded active listening GnuPG cryptographic agent and passphrase cache
  keyboxd.socket             loaded active listening GnuPG public key management service
  pk-debconf-helper.socket   loaded active listening debconf communication socket
  snapd.session-agent.socket loaded active listening REST API socket for snapd user session agent


Liebe Grüße, Mirulan.

Mirulan

(Themenstarter)
Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

Hallo lubux.

es fehlt also der Docker.socket für den User!

In meinem System ist folgende Datei (/etc/systemd/system/sockets.target.wants/docker.socket):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

SocketMode, SocketUser und SocketGroup müssten passen, wenn ich das richtig verstehe. Der entsprechende User ist in der docker-Gruppe.

Unter /etc/systemd/user/sockets.target.wants steht keine docker.socket.

Tante Google sagt zum starten eines Dienstes mit systemd für eine Gruppe:

1
2
3
4
5
6
7
8
9
Füge unter dem Abschnitt [Unit] die Option OnlyMembersOf=gruppe ein.

Code:
     [Unit]
     Description=My Service
     OnlyMembersOf=my-group
     
     [Service]
     ExecStart=/usr/bin/my-service

Ich kriege es nur noch nicht zusammen! Muss ich nun unter /etc/systemd/user/sockets.target.wants eine Datei docker.socket mit den Google Ergebnis einfügen? Aber wenn ja, wie kriege ich es hin, dass das mit der anderen docker.socket nicht kollidiert?

Nochmal die Bitte mir intellektuell unter die Arme zu greifen. Stehe etwas auf dem Schlauch. Oder gibt es eine andere Art und Weise, dass ganze zum funktionieren zu bringen.

Liebe Grüße, Mirulan.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14346

docker läuft per default als Systemdienst. Nur für den User, müsstest du als rootless konfigurieren.

docker info | grep rootless

Schau mal im Internet/KIs nach Docker ohne rootrechte.

Mirulan

(Themenstarter)
Avatar von Mirulan

Anmeldungsdatum:
8. Juni 2025

Beiträge: 6

Wohnort: Berlin

Hallo lubux und alle Mitleser.

Mir ist ein Buch von Öggl/Kofler in die Hände gefallen, in dem es um Docker geht. Die beiden empfehlen wie BillMeier die ce-Variante und nicht die docker.io.

Nach ein wenig weiterlesen und nachdenken habe ich dann die alte Installation deinstalliert und die Community Edition installiert. Hat auch so funktioniert, wie im Buch beschrieben.

In dieser Installation ist ein Shell-Skript, welches mit "dockerd-rootless-setuptool.sh install" einen user einrichtet, wenn dieser es ausführt. Dann muss noch eine Zeile, die das Skript ausgiebt, in die .bashrc geschrieben werden, welche die UMgebungsvariable DOCKER_HOST definiert. Und dann funzt das.

ZU meiner Frage, wie das mit mehreren Usern in der Docker-Gruppe aussieht, habe ich von Kofler die Antwort bekommen es einfach auszuprobieren, da ich keine Informationen dazu im Buch fand. Der Verlag meinte aber, dass sie diesen Punkt in die nächste Auflage einarbeiten.

Ich bedanke mich nochmals recht herzlich bei dir und BillMeier und verbleibe mit lieben Grüßen, Mirulan.

Antworten |