## MariaDB-container

Voor we gaan beginnen met containers te starten/stoppen en images te pullen gaan we kijken op Docker-hub wat de laatste stabiele versie is van MariaDB en welke we gaan gebruiken voor deze opdracht.

Op DockerHub zien we dat de versie 10.5.10 de stabiele geteste versie en dat 10.6 een Alpha versie is. We gebruiken in deze demo de latest tag en zullen daarmee 10.5.10 gebruiken.

Op de Docker-server gaan we zoeken naar MariaDB.

    docker search mariadb

Daar zien we de volgende output:

`NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mariadb MariaDB Server is a high performing open sou… 4102 [OK]`

Hiermee zie je dat er veel verschillende versies zijn, wij gebruiken de mariadb.

Je kunt de image met de volgende opdracht naar je toe halen.

    docker pull mariadb

De image staat nu lokaal op je server.

    docker images

Je ziet nu welke images er lokaal staan.

## Container starten

We gaan de container eerst lokaal starten, we zetten nog geen poorten open, daarmee zorg je ervoor dat je zelf de container beschikbaar hebt, maar van buiten er niemand bij kan.

Met de volgende opdracht start je de container.

    docker run --name mariadbdemo -e MYSQL_ROOT_PASSWORD=password -d mariadb

- --name = geeft de container een eigen naam
- -e = enviroment, hiermee kun je variabelen instellen, in dit geval het wachtwoord voor de root MySQL gebruiker.
- -d = detached, de container draait op de achtergrond.

De database container is hiermee gestart en kun je vinden onder docker-processes.

    docker ps

Om het log bestand van je MariaBD container te zien kun je de volgende opdracht gebruiken.

    docker logs mariadbdemo

Er draait nu nog geen database. Je kunt op 2 manieren inloggen, via de container of via mysql-client. Bij mysql-client moet je het IP-adres weten van de container, die Docker op de achtergrond aan deze container heeft gegeven. We gaan beide methodes demonstreren.

## Inloggen via Docker exec

Een shell krijgen in je container.

    docker exec -it mariadbdemo /bin/bash

Je ziet dat je nu al root in je container zit, nu kun je inloggen op mysql.

    mysql -u root -p

Je zit na het invoeren van je wachtwoord op de MySQL-server dat draait in een container.

## Inloggen via MySQL-client

Hiervoor moeten we op de server mysql-client installeren. Dat doe je met de volgende opdrachten.

    sudo apt update

    sudo apt install mysql-client -y

Hiermee wordt mysql-client geïnstalleerd.

Het enige wat mysql-client nodig heeft is een adres waar hij verbinding mee kan maken, hier zie je het verschil tussen MySQL lokaal draaien als service en in een containet draaien. Omdat mysql-client lokaal is geïnstalleerd kunnen we hem benaderen via het IP-adres dat Docker aan de container heeft gegeven. Remote kan (nog) niet.

Het vinden van het IP-adres van de container.

    docker inspect mariadbdemo | grep IPAddress

`"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",`

Verbinding maken met de MariaDB container.

    mysql -u root -p -h 172.17.0.2

na het invullen van je wachtwoord zie je dat je nu gelijk in de MariaDB database zit.