Online zetten: Docker installeren
Hier bouw je op verder: Installeren met sudo apt en Een dienst met systemctl
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
- Linux Installeren met sudo apt
- Linux Een dienst met systemctl
Je site draait in Ubuntu (les 11), met jouw Python en jouw virtual environment. Een server heeft een andere Python en geen virtual environment van jou. Elk verschil is een kans dat iets bij jou werkt en op de server niet.
Docker haalt die verschillen weg. Je pakt je site in, samen met Linux, Python en alle packages, in één pakket: een image. Dat image draait overal hetzelfde, op je laptop en op de server. Een draaiend image heet een container. Van één image kun je meer containers starten, net zoals je één programma twee keer kunt openen.
Je installeert Docker in Ubuntu in WSL, en kijkt of het draait.
Installeren
Staat Docker Desktop al op je laptop, open het dan en kijk bij Settings, Resources, WSL integration. Staat Ubuntu-24.04 daar aan, zet het uit en sluit Docker Desktop. Anders praat docker in Ubuntu met Docker Desktop, en heb je straks twee Dockers door elkaar.
Open Ubuntu en installeer Docker:
sudo apt update
sudo apt install docker.io docker-compose-v2 docker-buildx git
Dat zijn vier pakketten van Ubuntu zelf:
docker.io: Docker, met het commandodockeren de dienst die de containers draait;docker-compose-v2:docker compose, voor les 21;docker-buildx: het onderdeel dat images bouwt;git: dat heb je al, maar op de server typ je straks precies deze regel.
Docker draait als dienst, en die start meteen. Controleer het:
systemctl status docker
Sluit de status met q.
Er gaat iets mis
failed to connect to the docker API
failed to connect to the docker API at unix:///var/run/docker.sock; check if the path is correct and if the daemon is running: dial unix /var/run/docker.sock: connect: no such file or directory
Oorzaak: de dienst van Docker draait niet.
Oplossing: start hem, en laat hem voortaan vanzelf starten:
sudo systemctl enable --now docker
Cannot connect to the Docker daemon
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Oorzaak: hetzelfde als hierboven, in een andere vorm. Het bestand docker.sock staat er nog, maar de dienst die erachter hoort te luisteren, draait niet.
Oplossing: sudo systemctl enable --now docker, en kijk met systemctl status docker of er active (running) staat.
inactive (dead) bij systemctl status
Oorzaak: de dienst staat uit, of Ubuntu is niet opgestart met systemd.
Oplossing: start hem met sudo systemctl enable --now docker. Zegt systemctl dat het systeem niet met systemd is opgestart, kijk dan bij Diensten in de Linux-cursus.
Door naar les 14: Docker zonder sudo.