Raspberry Pi 4 Docker

Witam!
Proszę o pomoc, padł mi dysk na którym miałem suplę, HA, i kilka innych rzeczy w docker.
Miałem kopię zapasową całego dysku więc wgrałem obraz, ale mam jeden problem nie chce mi wystartować docker.
dostaję takie coś:

pi@raspberrypi:~ $ sudo systemctl status docker
× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Thu 2024-08-01 13:45:41 CEST; 33min ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 6558 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=2)
   Main PID: 6558 (code=exited, status=2)
        CPU: 1.441s

Aug 01 13:45:41 raspberrypi systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Aug 01 13:45:41 raspberrypi systemd[1]: Stopped docker.service - Docker Application Container Engine.
Aug 01 13:45:41 raspberrypi systemd[1]: docker.service: Consumed 1.441s CPU time.
Aug 01 13:45:41 raspberrypi systemd[1]: docker.service: Start request repeated too quickly.
Aug 01 13:45:41 raspberrypi systemd[1]: docker.service: Failed with result 'exit-code'.
Aug 01 13:45:41 raspberrypi systemd[1]: Failed to start docker.service - Docker Application Container Engine.
pi@raspberrypi:~ $ sudo systemctl start docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

próbowałem naprawić różnymi sposobami znalezionymi w sieci ale bez powodzenia.
Może ktoś coś doradzi

Sprawdź czy masz miejsce na nośniku.
df -h

sudo systemctl status docker.service
sudo journalctl -xe
sudo dockerd --debug

Może problemy z dostępem do sieci.

sudo dockerd --debug
sudo systemctl restart systemd-networkd.service
Zrestartuj usługi sieciowe i zrób reboot maszyny.

pi@raspberrypi:~ $ df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/root                     470G   32G  419G   7% /
devtmpfs                      3.6G     0  3.6G   0% /dev
tmpfs                         3.9G     0  3.9G   0% /dev/shm
tmpfs                         1.6G  1.2M  1.6G   1% /run
tmpfs                         5.0M   16K  5.0M   1% /run/lock
/dev/sda1                     253M   51M  202M  20% /boot
//192.168.1.12/Kopia_Rasbery  1.8T  597G  1.2T  35% /media/sieciowy
tmpfs                         782M     0  782M   0% /run/user/1000


pi@raspberrypi:~ $ sudo systemctl status docker.service
× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Thu 2024-08-01 16:14:07 CEST; 2min 10s ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 1463 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=2)
   Main PID: 1463 (code=exited, status=2)
        CPU: 2.812s

Aug 01 16:14:05 raspberrypi systemd[1]: docker.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 01 16:14:05 raspberrypi systemd[1]: docker.service: Failed with result 'exit-code'.
Aug 01 16:14:05 raspberrypi systemd[1]: Failed to start docker.service - Docker Application Container Engine.
Aug 01 16:14:05 raspberrypi systemd[1]: docker.service: Consumed 2.812s CPU time.
Aug 01 16:14:07 raspberrypi systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Aug 01 16:14:07 raspberrypi systemd[1]: Stopped docker.service - Docker Application Container Engine.
Aug 01 16:14:07 raspberrypi systemd[1]: docker.service: Consumed 2.812s CPU time.
Aug 01 16:14:07 raspberrypi systemd[1]: docker.service: Start request repeated too quickly.
Aug 01 16:14:07 raspberrypi systemd[1]: docker.service: Failed with result 'exit-code'.
Aug 01 16:14:07 raspberrypi systemd[1]: Failed to start docker.service - Docker Application Container Engine.


pi@raspberrypi:~ $ sudo journalctl -xe
Aug 01 16:16:04 raspberrypi bash[696]: [16:16:04] [Worker-Main-3/INFO]: Preparing spawn area: 0%
Aug 01 16:16:05 raspberrypi bash[696]: [16:16:05] [Worker-Main-1/INFO]: Preparing spawn area: 0%
Aug 01 16:16:05 raspberrypi bash[696]: [16:16:05] [Worker-Main-3/INFO]: Preparing spawn area: 9%
Aug 01 16:16:06 raspberrypi bash[696]: [16:16:06] [Worker-Main-2/INFO]: Preparing spawn area: 23%
Aug 01 16:16:06 raspberrypi bash[696]: [16:16:06] [Worker-Main-2/INFO]: Preparing spawn area: 34%
Aug 01 16:16:07 raspberrypi bash[696]: [16:16:07] [Worker-Main-1/INFO]: Preparing spawn area: 55%
Aug 01 16:16:07 raspberrypi bash[696]: [16:16:07] [Worker-Main-1/INFO]: Preparing spawn area: 74%
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Worker-Main-2/INFO]: Preparing spawn area: 90%
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Server thread/INFO]: Time elapsed: 39180 ms
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Server thread/INFO]: Done (50.440s)! For help, type "help"
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Server thread/INFO]: Starting remote control listener
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Server thread/INFO]: Thread RCON Listener started
Aug 01 16:16:08 raspberrypi bash[696]: [16:16:08] [Server thread/INFO]: RCON running on 0.0.0.0:25575
Aug 01 16:16:09 raspberrypi bash[696]: [16:16:09] [VoiceChatServerThread/INFO]: [voicechat] Voice chat server started at port 24454
Aug 01 16:16:10 raspberrypi bash[696]: [16:16:10] [ForkJoinPool.commonPool-worker-1/INFO]: There is an update available for MiniMOTD!
Aug 01 16:16:10 raspberrypi bash[696]: [16:16:10] [ForkJoinPool.commonPool-worker-1/INFO]: This server is running version v2.1.0, which is 2 versions>
Aug 01 16:16:10 raspberrypi bash[696]: [16:16:10] [ForkJoinPool.commonPool-worker-1/INFO]: Download the latest version, v2.1.2 from GitHub at the lin>
Aug 01 16:16:10 raspberrypi bash[696]: [16:16:10] [ForkJoinPool.commonPool-worker-1/INFO]: https://github.com/jpenilla/MiniMOTD/releases/tag/v2.1.2
Aug 01 16:16:18 raspberrypi sudo[2032]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/systemctl status docker.service
Aug 01 16:16:18 raspberrypi sudo[2032]: pam_unix(sudo:session): session opened for user root(uid=0) by pi(uid=1000)
Aug 01 16:16:18 raspberrypi sudo[2032]: pam_unix(sudo:session): session closed for user root
Aug 01 16:16:54 raspberrypi sudo[2088]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/journalctl -xe
Aug 01 16:16:54 raspberrypi sudo[2088]: pam_unix(sudo:session): session opened for user root(uid=0) by pi(uid=1000)

nic nie pomogło

cały czas dostaję takie coś:


pi@raspberrypi:~ $ sudo systemctl daemon-reload && sudo systemctl restart docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

edit
jak można usunąć docker?

W ogóle masz dostęp do sieci z poziomu konsoli?
Błędy typu exit code nic nie mówią.
journalctl -u docker.service
Spróbuj zainstalować ponownie apparmor sudo apt install apparmor
Instalacja sudo apt install deinstalacja sudo apt uninstall

To polecenie nic nie wykonało ponieważ apparmor jest zainstalowany w systemie.
odinstalowałem pakiet i zainstalowałem ponownie, nic nie pomogło.
Mam dostęp do sieci z poziomu konsoli, np pingi na np. wp idą, jeżeli o to chodzi

To nie pozostaje ci nic innego jak instalacja docker na nowo, czy kontenery i obrazy pozostaną tego nie wiem.

Tak uczyniłem

sudo apt-get remove docker-ce

reboot maliny i instalacja na nowo za pomocą:

curl -sSL https://get.docker.com | sh

docker się zainstalował ale nadal ni chce się uruchamiać cały czas ten sam błąd

Instalacja z tego skryptu wymaga współczesnej wersji debiana (czyli 12 lub z biedą 11 LTS oczywiście może to być raspbian byle w tych wersjach nie niżej), podejrzewam jednak, że masz system z prehistorii wyjęty i wtedy instalacja tylko ręczna.

System mam taki Raspberry Pi OS Bookworm 12
a instalowałem też wg. tego poradnika
i za każdym razem docker nie chce się uruchomić.
Mam też jedną kopię zapasową dysku (obraz) z systemem Raspberry Pi OS Bullseye 11. Też po wgraniu tego obrazu docker nie chce się uruchomić.
Nie wiem o co tu chodzi kopie robiłem programem dd na raspberry.
wszystko inne działa i się uruchamia np. server minecraft

edit.
Tak się zastanawiam czy w mojej sytuacji portainer nie odgrywa jakiejś roli tylko nie wiem jak go usunąć, bo

sudo apt-get remove portainer

nie działa bo docker jest nie uruchomiony

Czyli nie trafiłem bo niespełnione zależności to częsty problem, ale jeszcze jedno mi zaświtało - poprzednio miałeś też oficjalne wydanie dockera, czy któreś z nieoficjalnych, jeśli to drugie to usuwanie powinieneś zrobić inaczej.

Stosowałeś sie do instrukcji, którą linkujesz krok po kroku? Jest tam opis jak należy zadbać o zależności pakietów i jak przygotować system przed instalacją np sprawdzenie zapory ogniowej.

Na twoim miejscu instalował bym ręcznie komenda po komendzie, a nie używał skryptu. Wówczas możesz śledzić każdy etep.

@angler instalowałem za pomocą skryptu i ręcznie ten sam efekt.
testowo teraz też dałem

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
i docker wystartował bez problemu tylko nie mam żadnych kontenerów i obrazów.
chyba łatwiej będzie od nowa zainstalować system i przywrócić np HA i suple z kopi.
Mam pytanie bo teraz chciałbym zainstalować czystego debiana 12 którego mam wybrać, tego: armhf?

to zależy czy chcesz (lub musisz) mieć 32-bitowy czy 64-bitowy,
jeśli masz 1GB RAM zalecany jest armhf dla modeli powyżej 1GB możesz użyć arrn64

Pobrałem z strony
2023.11.09 12 (Bookworm) 4 4 (8GB)
ja to mam pecha bo podczas podłączenia przez putty trzeba podać hasło dla pi, ale żadne z domyślnych nie przyjmuje np. raspberry, root itd.
jak inaczej zmienić to hasło?

Nigdy nie miałem RPi i nie instalowałem na tym komputerku Debiana ale może czytając dokumentację?

@angler Ja czytałem tę dokumentację, tylko że konsola loguje się na konto “pi” i od razu chce hasło, puste też nie działa.
edit.
teraz mi zaświtało że trzeba utworzyć plik ssh :slight_smile:

Próbowałeś logować się lokalnie na konto root?
User pi to raczej jeszcze nie instnieje

Nie bardzo mam jak podłączyć monitor do maliny (nie mam przejściówki Hdmi)
edit.
Mój błąd w putty miałem ustawioną domyślnie nazwę użytkownika pi i dlatego logował mi z tą nazwą.
teraz pokazuje mi się
Zrzut ekranu 2024-08-04 130014
wpisuję: root
i chce hasło tylko że ani puste hasło ani żadne domyślne nie przyjmuje

O ile pamiętam root jest bez hasła ale na niego się nie zalogujesz, logujesz się jako user:pi i masz uprawnienia sudo, hasło raspberry

Udało mi się w końcu podpiąć monitor pod malinę. wtedy można było się zalogować na root bez hasła, nadałem hasło.
Włączyłem zdalne logowanie dla root wg. tego poradnika i można teraz się logować.
Po instalacji HA i przywróceniu kopi chyba wszystko działa, co prawda mam jeszcze dużo rzeczy do ogarnięcia.
edit.
Trochę to trwało ale wszystko udało mi się przywrócić :smile:
Wykonałem też kopię obrazu za pomocą dd i po wgraniu obrazu na inny dysk wszystko wystartowało (nie wiem dlaczego wcześniej kopie robione za pomocą dd były błędne i docker nie odpalał)
Kopie robię za pomocą takiego polecenia:

sudo dd bs=4M if=/dev/sda of=/media/Kopia_Raspbery/kopia-23-02-2024.img

i później takim poleceniem zmniejszam obraz

sudo ./pishrink.sh /media/Kopia_Raspbery/kopia-23-02-2024.img

Czy można jakoś zautomatyzować robienie kopi, chodzi o to aby nazwa kopi była zawsze z aktualną datą?
edit.
Może komuś się przyda.

  1. Utworzyłem skrypt z zawartością
#!/bin/bash
sudo dd bs=4M if=/dev/sda of=/media/Kopia_Raspbery/kopia-`date +%F.img`

  1. dodałem do crona
0 4 1 * * root /home/pi/skrypty_kopi/kopia_zapasowa.sh

czyli każdego miesiąca pierwszego dnia o 4.00 robi mi się kopia zapasowa na Qnap, plik ma nazwę kopia (aktualna data).img
3. Czas robienia u mnie to około 1h, więc dwie i pół godziny później odpala się następny skrypt z zawartością

#!/bin/bash
sudo pishrink.sh /media/Kopia_Raspbery/kopia-`date +%F.img`

w crontab

30 6 1 * * root /home/pi/skrypty_kopi/zmniejszanie_kopii.sh

który to zmniejsza plik kopi zapasowej z 128GB (bo taki mam dysk) na rozmiar jaki zajmują dane na dysku (dzisiaj 22GB).
Kopie zapasowe robią się samoczynnie i o to chodziło :slight_smile: