uitgewerkt

🎖️ Licentie: CC BY-NC-SA 4.0 📅 Aangemaakt: 22-05-2024


Installatie Docker

Repo toevoegen

Het programma ‘docker’ en al haar componenten zijn niet te vinden in de servers van ubuntu. We moeten dus een extra repo toevoegen zodat de computer weet wat en waar hij iets moet afhalen.

  • Dit doen we a.d.h.v. enkele commando’s in docker documentatie (zie link hierboven) je opent een terminal en plakt wat hieronder staat één voor één

Update

sudo apt-get update

Afhankelijkheden

sudo apt-get install ca-certificates curl gnupg

Keyrings initialiseren

sudo install -m 0755 -d /etc/apt/keyrings

Keyrings downloaden

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Rechten keyring

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Repolijst updaten

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Updaten

sudo apt-get update

Pakketten afhalen

Docker heeft enkele programma’s nodig om te werken, ze bestaat dan ook uit meerdere modules. Je download alle benodigde componenten voor onze toepassing a.d.h.v. dit commando:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • Dit installeert het dockerprogramma, de nodige virtualisatiecomponenten, de module om via terminalvenster te communiceren, …

Na installatie

Testen

Om uit te testen of het programma correct werkt kunnen we een voorbeeldprogramma van docker draaien. - Deze test of docker automatisch opstart met de computer, virtualisatie werkt en of je een container kan starten.

sudo docker run hello-world

Toevoegen aan docker groep

Om commando’s uit te voeren zonder administrator rechten moeten we onze gebruiker toevoegen aan de docker groep. - We starten hierna ook de installatie opnieuw op, dit is nodig voor het herkennen van de verandering van gebruikers in de groep.

sudo usermod -aG docker $USER && sudo systemctl reboot

Checken docker groep

Om te kijken of je gebruiker is toegevoegd aan de groep log je in als die gebruiker en voer je het ‘groups’ commando uit:

groups
kaas adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

Info

De groepen verschillen van systeem tot systeem en a.d.h.v. geïnstalleerde software, updates, … - Je moet alleen kijken of ‘docker’ hier staat.

Configuratie swarm

Docker swarm

Docker Swarm is als een dirigent voor containers. Stel je voor dat containers kleine pakketjes zijn waarin apps zitten. Swarm regelt hoeveel van deze pakketjes waar moeten draaien op verschillende computers. Het zorgt ervoor dat alles soepel samenwerkt, dat er genoeg pakketjes draaien, en als er een computer uitvalt, neemt een andere het over zodat je app blijft werken.

Activeren swarm

Nu gaan we een swarm activeren, je zal IPVANJOUWSYSTEEM moeten veranderen naar het IP adres toegekend via DHCP of de statische IP in jouw netplan. Je vind dit met ‘ip a’

docker swarm init --advertise-addr IPVANJOUWSYSTEEM

Netwerk

We zullen een virtueel netwerk in Docker aanmaken om alle containers met elkaar te kunnen verbinden.

docker network create -d overlay proxy

Warning

Je moet dan ook bij elke docker-compose.yml het netwerk proxy toevoegen aan je configuratie. Zoals bv bij NGINX op docker:

Configuratiebestand

Om een docker service te configureren doen we dit a.d.h.v. een docker-compose.yml bestand.

nano ~/data/config/nginx/docker-compose.yml
version: "3.3" 
 
services: 
  nginx-webserver: 
    image: nginx
    volumes:
      - /home/GEBRUIKERSNAAM/data/nginx/html:/usr/share/nginx/html
    ports:
      - "8080:80"
    networks:
      - proxy
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s
 
networks:
  proxy:
    external: true
 
  • Verander GEBRUIKERSNAAM naar jouw Linux gebruikersnaam.
Link to original