opened image

Jak zainstalować MariaDB w Dockerze

W tym artykule omówimy, jak zainstalować serwer MySQL MariaDB w kontenerze Docker i zobaczymy, jak połączyć go z phpMyAdmin w docker-compose, który instalowaliśmy w artykule Jak zainstalować phpMyAdmin w Docker.
 

Zatem zainstalujmy Docker. 

Jak zwykle, aktualizujemy pakiety systemu operacyjnego. 
 

apt update


Zainstalujemy niezbędne pakiety i dodamy nowe repozytorium:

 

 

 

apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 


Aktualizujemy pakiety z nowym repozytorium:

 

 

 

 

apt update

 


Instalujemy Docker.

 

 

 

 

apt-get install docker-ce docker-ce-cli containerd.io

 


Sprawdzamy wersję Dockera:

 

 

 

 

docker --version

 


Sprawdzamy status:

 

 

 

 

systemctl status docker

 



W przypadku, gdy nie uruchomił się, uruchamiamy:

 

 

 

 

systemctl start docker

 


I dodajemy do autostartu.

 

 

 

 

systemctl enable docker

 


 

 

Instalujemy Docker-Compose

 

 
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


Nadajemy uprawnienia do uruchamiania dla pliku docker-compose

 

 

 

chmod +x /usr/local/bin/docker-compose

 


Sprawdzamy, czy Docker-Compose został zainstalowany:

 

 

 

 

docker-compose --version

 



Jak widzimy, wszystko w porządku. Przechodzimy do tworzenia pliku dla Docker-Compose.

Aby w przyszłości orientować się, gdzie i co mamy zainstalowane, stworzymy osobny folder dla tego projektu w katalogu /home i przejdziemy do niego.

 

 

 

 

mkdir /home/mariadb && cd /home/mariadb

 


W tym przewodniku zainstalujemy konkretną wersję MariaDB 10.8. Ale możesz zainstalować potrzebną wersję z dostępnych na stronie hub.docker.com

Aby stworzyć plik docker-compose.yaml, skorzystamy z repozytorium pod tym linkiem https://hub.docker.com/_/mariadb

Tworzymy plik docker-compose.yaml lub docker-compose.yml:

 

 

 

 

vim docker-compose.yaml

 


I dodajemy do niego następujący kod:

 

 

 

version: '3.1'

services:
  mariadb:
    container_name: mariadb
    image: mariadb:10.8
    ports:
        - 3310:3306
    environment:
        MARIADB_USER: admin
        MARIADB_PASSWORD: your_password
        MARIADB_ROOT_PASSWORD: your_strong_pass
    restart: always



Gdzie:

mariadb: nazwa Twojego kontenera;
image: mariadb:10.8: obraz, z którego zostanie uruchomiona mariadb
ports: 3310:3306 - port 3310, który będziemy używać do połączenia z mariadb
restart:always  - wskazuje, że kontener zostanie ponownie uruchomiony w przypadku awarii lub ponownego uruchomienia serwera
MARIADB_USER: tworzenie nowego użytkownika, w tym przypadku to admin;
MARIADB_PASSWORD: hasło dla użytkownika admin;
MARIADB_ROOT_PASSWORD: to hasło zostanie ustawione dla konta root superużytkownika MariaDB .

Uruchamiamy nasz skrypt (w tym celu musimy znajdować się w katalogu, w którym stworzono nasz plik. W tym przypadku to /home/mariadb):

 

 

 

 

 

docker-compose up -d 

 


Czekamy na pobranie obrazów i uruchomienie.

Sprawdzamy:

 

 

 

 

docker-compose ps

 


lub 

 

 

 

 

docker ps

 



Aby zobaczyć logi, użyj polecenia 

 

 

docker logs -f mariadb



Można również wykonać instalację tylko w dockerze:

 

 

 

docker run -d --name mariadb -e MARIADB_USER=admin -e MARIADB_PASSWORD=your_password -e MARIADB_ROOT_PASSWORD=your_strong_pass mariadb:10.8

 



Tę wersję bazy danych mariadb:10.8 można również zainstalować razem z phpMyAdmin i powiązać z nią. Zobaczmy, jak to zrobić.

Edytujemy stworzony plik docker-compose.yaml

 

 

 

 

vim docker-compose.yaml

 



Dodajemy poniżej następującą konstrukcję:

 

 

 

version: '3.1'

services:
  mariadb:
    container_name: mariadb
    image: mariadb:10.8
    ports:
        - 3310:3306
    environment:
        MARIADB_USER: admin
        MARIADB_PASSWORD: your_password
        MARIADB_ROOT_PASSWORD: your_strong_pass
    restart: always

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8090:80
    environment:
      - PMA_HOST=mariadb
    depends_on:
      - mariadb

 


W sekcji phpmyadmin  dodaliśmy obraz phpmyadmin, wskazaliśmy mu port 8090, ale teraz będzie on powiązany z konkretnym serwerem bazy danych, a mianowicie z tym, który zainstalowaliśmy/uruchomiliśmy mariadb:10.8.
Ten parametr jest zapisany w bloku environment , gdzie:  PMA_HOST=mariadb - wskazuje na kontener/blok mariadb , który jest opisany powyżej w tym pliku.
Także dyrektywa depends_on: wskazuje na zależność uruchomienia od kontenera mariadb. Oznacza to, że dopóki kontener z mariadb się nie uruchomi, kontener z phpmyadmin  nie zostanie uruchomiony.  Możemy uruchomić phpmyadmin  i mariadb jednym poleceniem. 

 

 

 

 

 

docker-compose up -d lub docker-compose up -d --force-recreate


Sprawdzamy:

 

 

 

 

 

docker-compose ps

 



W ten sposób możesz zainstalować potrzebną wersję bazy danych MariaDB lub MySQL. 

Jak zainstalować Postgres i pgadmin4 w Dockerze, można przeczytać w artykule Jak zainstalować PostgreSQL i pgAdmin w Docker.