Docker auf Ubuntu 16.04 defekt?

Meine Docker-Installation ist beschädigt, als ich versuchte, den Docker-Manager über die Web-Oberfläche zu aktualisieren. Ich weiß, dass meine Docker-Installation defekt ist, da ich Sams Empfehlung gefolgt bin und dies erhalten habe:

$ docker run -it --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: no status provided on response: unknown.
ERRO[0003] error waiting for container: context canceled

Anschließend habe ich dieses GitHub-Issue gefunden, das mit dem, was ich sehe, übereinzustimmen scheint:

Da ich Ubuntu 16.04 verwende, scheint dies die Lösung zu sein:

  1. Ein deb-Repository hinzufügen:
sudo add-apt-repository 'deb http://security.ubuntu.com/ubuntu xenial-security main universe'
  1. runc installieren (beachten Sie die ~-Zeichen; GitHub hat sie in @vietthang207s ursprünglichem Beitrag falsch dargestellt):
sudo apt-get install runc=1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4
  1. Die Installation von runc führt dazu, dass docker-ce entfernt wird, daher installieren Sie es erneut:
sudo apt-get install docker-ce

Könnte jemand bestätigen, dass dies sicher ist, oder welche Konsequenzen dies haben wird? Ich habe etwas Angst, dass Docker deinstalliert wird. Das würde wohl bedeuten, dass meine Seite während des Vorgangs nicht verfügbar ist (merkwürdigerweise ist sie derzeit noch aktiv, obwohl Docker defekt ist). Aber ist meine Discourse-Installation sicher, oder werden auch meine Container verschwinden?

Edit: Bis hierhin habe ich mich getraut zu gehen:

$ sudo apt-get install runc=1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4
[sudo] password for christoph:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  aufs-tools cgroupfs-mount docker-ce-cli libltdl7
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  containerd.io docker-ce
The following NEW packages will be installed:
  runc
0 upgraded, 1 newly installed, 2 to remove and 21 not upgraded.
1 not fully installed or removed.
Need to get 1,890 kB of archives.
After this operation, 192 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
$

Hast du neu gestartet? Ich hatte Probleme mit Docker, wenn ich ein Upgrade durchgeführt und nicht neu gestartet habe.

Ja. Das klingt beunruhigend. Ich weiß, dass ich Seiten auf 16.04 habe und weiß, dass ich nichts mit runc gemacht habe.

Wenn du Bedenken bezüglich Ausfallzeiten hast und bei Digital Ocean bist, könntest du einfach:

  1. eine neue Droplet mit 18.04 erstellen und eine saubere Installation durchführen.
  2. eine Floating IP beziehen, sie auf den alten Server richten und DNS dorthin umleiten.
  3. das alte Forum auf Nur-Lesezugriff setzen.
  4. ein Backup erstellen.
  5. auf den neuen Server wiederherstellen.
  6. die Floating IP auf den neuen Server umleiten.

Du hast dann keine Ausfallzeit, nur die Zeit im Nur-Lesezugriff, die für Backup und Wiederherstellung benötigt wird. Du kannst das ein- oder zweimal üben, bevor du den Nur-Lesezugriff aktivierst. Du könntest auch rsync für die Uploads verwenden, anstatt sie im Backup einzuschließen, sodass du nur die Datenbank sichern und wiederherstellen müsstest.

Du würdest wahrscheinlich auch deine bestehenden Let’s Encrypt-Zertifikate übertragen wollen, sonst musst du sie, glaube ich, neu erstellen.

Ich habe darüber nachgedacht, habe mich aber dagegen entschieden, da ich dachte, dass mein Docker-Setup offenbar defekt ist, mein Forum aber noch funktioniert. Ein Neustart des Servers könnte das Forum ebenfalls beschädigen. Wie groß ist die Wahrscheinlichkeit dafür? Soll ich es trotzdem versuchen?

Danke für deine Erklärung zur Minimierung von Ausfallzeiten. Nein, ich nutze nicht DO. Aber Ausfallzeiten sind überhaupt kein Problem, solange ich weiß, dass sie nicht viele Stunden oder Tage dauern werden.

Wenn du Docker aktualisiert hast, es aber noch installiert ist und dieses Problem nach dem Update aufgetreten ist, bin ich mir ziemlich sicher, dass ein Neustart dein Problem lösen wird. Hinweis: Kostenlose Beratung ist das wert, was du dafür zahlst. :wink:

Erstelle vor dem Neustart ein Backup. Im schlimmsten Fall kannst du mit einem Backup und deiner app.yml innerhalb einer Stunde einen neuen Server hochfahren und von vorne beginnen (es sei denn, du hast vielleicht 10 GB oder mehr Daten).

Mein Plan würde wahrscheinlich für eine Reihe von Hosting-Diensten funktionieren.

Wenn du extrem paranoid bist, könntest du irgendwo einen neuen Server hochfahren und ein Backup dorthin übertragen, falls etwas schrecklich schiefgeht, hast du einen Ausweichplan.

Ich schätze das sehr.

Eigentlich denke ich, dass es viel mehr wert ist. Aber ich verstehe, was du meinst.

Um es genau zu sagen:

  1. Ich habe versucht, den Docker-Manager über die Discourse-Weboberfläche zu aktualisieren, aber es fehlgeschlagen (ich habe die Fehler hier gepostet).
  2. Dann habe ich . /launcher rebuild app versucht, aber es fehlgeschlagen und mich zu Troubleshoot docker installation issues weitergeleitet.
  3. Mir wurde dann klar, dass ich wahrscheinlich einen anderen Befehl verwenden sollte, da ich separate Daten- und Web_only-Container habe, also habe ich ./launcher bootstrap web_only versucht, aber es gab denselben Fehler.
  4. Ich habe die Anweisungen unter Troubleshoot docker installation issues befolgt. Der Rest steht im OP.

Ich denke, ich werde das Wochenende abwarten, wenn ich Zeit habe, mögliche Folgeprobleme zu beheben. Denn: Nein, obwohl ich vor Jahren drei Discourse-Instanzen eingerichtet habe, würde das „Aufsetzen eines neuen Servers und der Neustart

[quote=“tophee, Beitrag: 5, Thema: 138873”]
und „einen neuen Server hochzufahren und von vorne zu beginnen