ZALOGUJ
    opened image

    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.