Ga naar hoofdinhoud

Online zetten: bijwerken en opruimen

Ubuntu installeert zijn eigen updates vanzelf (les 29). Maar je site draait op python:3.13-slim, en de voordeur op traefik:v3, en die komen van Docker Hub, niet van Ubuntu. Ook daarin worden gaten gevonden en gedicht, en die updates haal jij op.

De images bijwerken​

Doe dit één keer per maand, op de server:

cd ~/gastenboek
docker compose build --pull
docker compose up -d
cd ~/traefik
docker compose pull
docker compose up -d
  • build --pull haalt eerst de nieuwste python:3.13-slim, en bouwt je image daarop opnieuw.
  • pull haalt de nieuwste traefik:v3. Traefik bouw je niet zelf, dus daar is geen build.
  • up -d vervangt een container alleen als zijn image veranderd is. Was er niets nieuws, dan zegt hij Running en blijft alles staan.

Je blijft wel op Python 3.13 en op Traefik 3. Een nieuwe hoofdversie kies je zelf, in de Dockerfile en de compose.yaml, en die test je eerst op je laptop.

Oude images opruimen​

Bij elke --build en elke pull blijft het vorige image staan, zonder naam. Na een paar maanden staan er tientallen, van elk honderden megabytes. Kijk hoeveel ruimte Docker gebruikt:

docker system df

Bij Images staat onder RECLAIMABLE wat er weg kan. Gooi de images zonder naam weg:

docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

Typ y. Dangling betekent: een image zonder naam, waar geen container meer van draait. Je site en Traefik blijven staan.

Controlevraag
Een maand lang zet je elke week een nieuwe versie op de server, met git pull en docker compose up -d --build. Draait je site daarna op de nieuwste python:3.13-slim?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

no space left on device​

Oorzaak: de schijf van je server is vol, meestal door oude images.

Oplossing: kijk met docker system df waar de ruimte zit, en ruim op met docker image prune. Typ nooit docker volume prune of docker system prune --volumes op een server: die gooien ook volumes weg waar op dat moment geen container aan hangt.

De site start niet meer na het bijwerken​

docker compose ps toont (unhealthy) of Restarting, en je hebt alleen de images bijgewerkt.

Oorzaak: in de nieuwe python:3.13-slim of in een package is iets veranderd waar je site niet tegen kan. Dat is zeldzaam, maar het kan.

Oplossing: lees de fout in docker compose logs --tail 50. Terug naar het oude image gaat niet zomaar: build gaf de nieuwe zijn naam, en het oude heeft er geen meer. Los het daarom op je laptop op: bouw daar met docker compose build --pull, zoek de fout, en zet een fix op de server zoals in les 35.

Opdrachten​

Opdracht 1: Run - Bijwerken​

Werk je images bij, en kijk met docker compose ps in ~/gastenboek en ~/traefik of alles weer draait.

Antwoord

Je site staat op (healthy) en Traefik op Up. Kwam er een nieuw image, dan is de container net opnieuw gemaakt: bij STATUS staat een paar seconden.

Opdracht 2: Run - Opruimen​

Kijk met docker system df hoeveel ruimte de images gebruiken, ruim op met docker image prune, en kijk opnieuw. Hoeveel ruimte kwam er vrij?

Antwoord

docker image prune eindigt met Total reclaimed space: en een getal. Was er nog niets nieuws op Docker Hub en zette je weinig nieuwe versies op de server, dan is dat getal klein of 0B: er waren geen oude images.

Hierna volgen extra stappen: je containers bekijken in de browser, en de back-up die elke nacht vanzelf gebeurt.

Door naar les 40: beheren met Portainer.