ВОЙТИ
    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.
    Этот параметр прописан в блоке enviroment где:  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.