ZALOGUJ
    opened image

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

    Jak zainstalować 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ę Docker:

     

     

     

     

    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
    


    Ustawiamy prawa 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 jest w porządku. Przechodzimy do tworzenia pliku dla Docker-Compose.

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

     

     

     

     

    mkdir /home/mysql && cd /home/mysql
    

     


    W tym przewodniku będziemy instalować konkretną wersję MySQL 8. W tym celu skorzystamy z repozytorium z hub.docker.com

    Do stworzenia pliku docker-compose.yaml skorzystamy z repozytorium pod linkiem https://hub.docker.com/_/mysql

    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:
       db_mysql:
          container_name: db_mysql
          image: mysql
          ports:
            - "3311:3306"
          restart: always
          environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: rNZzq5U37DqJlNe
            MYSQL_ROOT_PASSWORD: 4kDGQDYe4JxDjRd
          volumes:
            - /var/lib/mysqld:/var/lib/mysql

     


    Gdzie:

    db_mysql: nazwa Twojego kontenera;
    image: mysql: obraz, z którego zostanie uruchomiony mysql 8;
    ports: 3311:3306 - port 3311, który będziemy używać do połączenia z mysql;
    restart:always  - wskazuje, że kontener będzie ponownie uruchamiany w przypadku awarii lub restartu serwera;
    mysql_USER: tworzenie nowego użytkownika, w tym przypadku to admin;
    mysql_PASSWORD: hasło dla użytkownika admin;
    mysql_ROOT_PASSWORD: to hasło będzie ustawione dla konta root superużytkownika mysql;
    volumes określamy wspólny katalog, aby przy ponownym uruchomieniu kontenera zachowały się dane bazy danych.

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

     

     

     

     

     

     

    docker-compose up -d 
    

     


    Czekamy na pobranie obrazów i uruchomienie.

    Sprawdzamy:

     

     

     

     

    docker-compose ps
    

     


    lub 

     

     

     

     

    docker ps
    

     


     

     

    Jak zobaczyć logi

     

    docker logs -f db_mysql
    

     


    Również tę wersję bazy danych mysql 8 można zainstalować razem z phpMyAdmin i podłączyć do niej. 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:
       db_mysql:
          container_name: db_mysql
          image: mysql
          ports:
            - "3311:3306"
          restart: always
          environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: rNZzq5U37DqJlNe
            MYSQL_ROOT_PASSWORD: 4kDGQDYe4JxDjRd
          volumes:
            - /var/lib/mysqld:/var/lib/mysql
       phpmyadmin:
          container_name: phpmyadmin
          image: phpmyadmin
          restart: always
          ports:
            - "8091:80"
          environment:
            - PMA_HOST=db_mysql
          depends_on:
            - db_mysql


    W sekcji phpmyadmin dodaliśmy obraz phpmyadmin, wskazaliśmy mu port 8091, ale teraz będzie on powiązany z konkretnym serwerem bazy danych, a mianowicie z tym, który zainstalowaliśmy/uruchomiliśmy mysql 8

    Ten parametr jest określony w bloku environment, gdzie: 
    PMA_HOST=db_mysql - wskazuje na kontener/blok mysql, który jest opisany powyżej w tym pliku.
    Również dyrektywa depends_on: wskazuje na zależność uruchomienia od kontenera db_mysql. Oznacza to, że dopóki nie uruchomi się kontener z mysql, kontener z phpmyadmin nie zostanie uruchomiony. 

    Możemy uruchomić phpmyadmin i mysql jednym poleceniem.

     

     

     

     

    docker-compose up -d 
    

     


    Sprawdzamy:

     

     

     

    docker-compose ps
    

     


    Jak widzimy, kontenery są uruchomione. 


    W podobny sposób możesz zainstalować potrzebną wersję bazy danych MariaDB. Jak to zrobić, możesz przeczytać w tym artykule.

     

    Również proponujemy zapoznać się z innymi przydatnymi artykułami: