УВІЙТИ
    opened image

    У цій статті ми розглянемо, як встановити в Docker контейнері MySQL сервер MariaDB, і побачимо, як її підключити до phpMyAdmin в docker-compose, який ми встановлювали в статті Як встановити phpMyAdmin у Docker.
     

    Отже, встановимо Docker. 

    Як зазвичай, оновлюємо пакети ОС. 
     

    apt update


    Встановимо необхідні пакети та додамо новий репозиторій:

     

     

     

    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"

     


    Оновлюємо пакети з новим репозиторієм:

     

     

     

     

    apt update

     


    Встановлюємо Docker.

     

     

     

     

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

     


    Перевіряємо версію Docker:

     

     

     

     

    docker --version

     


    Дивимося статус:

     

     

     

     

    systemctl status docker

     



    У разі, якщо він не запустився, запускаємо:

     

     

     

     

    systemctl start docker
    

     


    І додаємо в автозапуск.

     

     

     

     

    systemctl enable docker
    

     


     

     

    Встановлюємо 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
    


    Встановлюємо права на запуск для файлу docker-compose

     

     

     

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

     


    Перевіряємо, чи встановився Docker-Compose:

     

     

     

     

    docker-compose --version
    

     



    Як бачимо, все в порядку. Переходимо до створення файлу для Docker-Compose.

    Щоб орієнтуватися в майбутньому в тому, де і що у нас встановлено, створимо окрему папку для цього проекту в каталозі /home і перейдемо в неї.

     

     

     

     

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

     


    В цьому керівництві ми будемо встановлювати конкретну версію MariaDB 10.8. Але ви можете встановити потрібну вам з доступних  на сайті hub.docker.com

    Для створення файлу docker-compose.yaml скористаємося репозиторієм за посиланням https://hub.docker.com/_/mariadb

    Створюємо файл docker-compose.yaml або docker-compose.yml:

     

     

     

     

    vim docker-compose.yaml
    

     


    І додаємо в нього наступний код:

     

     

     

    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



    Де:

    mariadb: назва вашого контейнера;
    image: mariadb:10.8: образ, з якого буде розгорнута mariadb
    ports: 3310:3306 - порт 3310, який ми будемо використовувати для підключення до mariadb
    restart:always  - вказує на те, що контейнер буде перезапущено при збоях або перезавантаженні сервера
    MARIADB_USER: створення нового користувача, в даному випадку це admin;
    MARIADB_PASSWORD: пароль для користувача admin;
    MARIADB_ROOT_PASSWORD: цей пароль буде встановлено для облікового запису root суперкористувача MariaDB .

    Запускаємо наш скрипт (для цього потрібно знаходитися в директорії, де створено наш файл. В даному випадку це /home/mariadb):

     

     

     

     

     

    docker-compose up -d 
    

     


    Чекаємо на завантаження образів і розгортання.

    Перевіряємо:

     

     

     

     

    docker-compose ps
    

     


    або 

     

     

     

     

    docker ps
    

     



    Для перегляду логів використовуйте команду 

     

     

    docker logs -f mariadb
    



    Також можна виконати установку тільки в docker:

     

     

     

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

     



    Також цю версію бази даних mariadb:10.8 можна встановити разом з phpMyAdmin і прив'язати до неї. Розглянемо, як це зробити.

    Відредагуємо створений файл docker-compose.yaml

     

     

     

     

    vim docker-compose.yaml
    

     



    Додамо нижче наступну конструкцію:

     

     

     

    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

     


    У секторі phpmyadmin  ми додали образ phpmyadmin, вказали йому порт 8090, але тепер він буде прив'язаний до конкретного сервера бази даних, а саме до того, який ми встановили/розгорнули mariadb:10.8.
    Цей параметр прописаний у блоці environment , де:  PMA_HOST=mariadb - вказує на контейнер/блок mariadb , який описаний вище в даному файлі.
    Також директива depends_on: вказує на залежність старту/запуску від контейнера mariadb. Це означає, що поки не запуститься контейнер з mariadb, контейнер з phpmyadmin  не буде запущений.  Можемо запустити phpmyadmin  і mariadb однією командою. 

     

     

     

     

     

    docker-compose up -d або docker-compose up -d --force-recreate
    


    Перевіряємо:

     

     

     

     

     

    docker-compose ps
    

     



    Подібним чином ви можете встановити потрібну вам версію бази даних MariaDB або MySQL. 

    Як встановити Postgres і pgadmin4 у Docker можна прочитати в статті Як встановити PostgreSQL і pgAdmin у Docker.