Hallo! Volgt u de serie over het opzetten van een automatisch implementatiesysteem met behulp van GitHub Webhook? Zoals vermeld in deel 3, speelt Docker een cruciale rol in onze CI/CD-pijplijn.

Dit artikel biedt een stapsgewijze uitleg over hoe u Docker Engine en Docker Compose kunt installeren op een Ubuntu-server als u nog geen Docker op uw server heeft geïnstalleerd.

Upgrade naar de nieuwste Docker versie

1. Oude versie verwijderen (optioneel)

Als u eerder een onofficiële versie van Docker heeft geïnstalleerd, is het raadzaam om deze eerst grondig te verwijderen en opnieuw te beginnen. Voer de onderstaande opdracht uit om eventuele bestaande pakketten die conflicten kunnen veroorzaken, te verwijderen.

sudo apt-get remove --purge docker docker-engine docker.io containerd runc docker-compose

Als er geen belangrijke gegevens zijn en u een schone start wilt, raden we aan om alle sporen van de eerdere Docker-installatie volledig te verwijderen en de server te resetten.

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
  • Let op: Deze opdracht verwijdert alle container- en afbeeldingsdata, dus als de gegevens belangrijk zijn, zorg dan voor een back-up.

2. Instellen van de officiële Docker-repository

Om de nieuwste versie van Docker stabiliteit te installeren, moet u de officiële APT-repository instellen.

# update apt-pakketten
sudo apt-get update

# Installeren van de pakketten voor het instellen van de officiële Docker-repository
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# Toevoegen van de officiële GPG-sleutel van Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Toevoegen van de Docker-repository aan de APT-repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Activeren van de Docker APT-repository
sudo apt-get update

3. Installeren van Docker Engine

Nu installeren we Docker Engine en de bijbehorende tools.

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

De bovenstaande opdracht installeert Docker Engine, de CLI-tools, de container-runtime (containerd.io) en Docker Compose als een plugin.

4. Controleren of Docker is geïnstalleerd

Controleer of de installatie is voltooid door de hello-world container uit te voeren. Deze opdracht is een eenvoudige test om te bevestigen dat Docker goed functioneert.

sudo docker run hello-world

Als de boodschap "Hello from Docker!" verschijnt, is Docker Engine succesvol geïnstalleerd.

5. Docker-opdrachten gebruiken zonder sudo (verplicht)

Standaard moet u sudo gebruiken om een docker opdracht uit te voeren. In ons automatische implementatiesysteem moet docker echter worden uitgevoerd door een standaard gebruikersaccount voor de systemd service, dus we moeten de rechten instellen zodat u docker opdrachten zonder sudo kunt gebruiken.

  1. Voeg de huidige gebruiker toe aan de docker groep.
sudo usermod -aG docker $USER
  1. Log uit en log opnieuw in om de wijzigingen toe te passen.

  2. Controleer na het opnieuw inloggen opnieuw of de docker run hello-world opdracht correct werkt zonder sudo.

6. Controleren of Docker Compose is geïnstalleerd

Aangezien u de docker-compose-plugin heeft geïnstalleerd, is er geen extra installatieprocedure nodig. Controleer of docker compose correct is geïnstalleerd met de volgende opdracht.

docker compose version

Als een boodschap zoals "Docker Compose versie v2.x.x" verschijnt, was het succesvol.

7. Afsluitend

Nu is uw server uitgerust met zowel Docker als Docker Compose. Sluit dit artikel af en ga terug naar ons hoofdonderwerp, Het opzetten van mijn eigen automatisch implementatiesysteem met GitHub Webhook (deel 3) en ga door met de volgende stappen. Geweldige ervaringen met het containeriseren van projecten en automatisch implementeren met Docker wachten op u!