Перейти к содержимому
Главная страница » MariaDB в Docker

MariaDB в Docker

Прежде чем начать, убедитесь, что в системе установлен Docker. Я буду использовать Docker VPS c операционной системой Debian и предустановленным Docker и Portainer.

Загрузка и запуск образа MariaDB

Сначала вам нужно извлечь официальный образ MariaDB из Docker Hub:

docker pull mariadb

Получим вывод:

Using default tag: latest
latest: Pulling from library/mariadb
0622fac788ed: Pull complete
90dbf4535882: Pull complete
95ed3e3fde04: Pull complete
0b381eed6c88: Pull complete
d7547f36e497: Pull complete
a5e33262a388: Pull complete
3984aae8ebb4: Pull complete
9883ef72c7c9: Pull complete
Digest: sha256:11706a6fd276c2eada52d0d69b1a2aa1f1484cbe78137678e02cca8f7a0ae502
Status: Downloaded newer image for mariadb:latest
docker.io/library/mariadb:latest

Если вам нужна конкретная версия, вы можете указать ее с помощью тега:

docker pull mariadb:10.11
Чтобы сохранить данные после завершения жизненного цикла контейнера, создайте том Docker:
docker volume create mariadb_data

Запуск контейнера MariaDB

Запустите контейнер MariaDB с помощью следующей команды:

docker run --name mariadb-container \
  -e MARIADB_ROOT_PASSWORD=my-secret-pw \
  -p 3306:3306 \
  -v mariadb_data:/var/lib/mysql \
  -d mariadb

Эта команда:

  • Присваивает контейнеру имя mariadb-container
  • Устанавливает пароль root на my-secret-pw (измените его на безопасный пароль)
  • Сопоставляет порт 3306 на вашем хосте с портом 3306 в контейнере
  • Монтирует mariadb_data том в каталог данных контейнера
  • Запускает контейнер в отсоединенном режиме

Проверим установку

Проверьте, работает ли ваш контейнер:

docker ps

Видим, что контейнер запущен:

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS             PORTS                                                             NAMES
bf05574897bc   mariadb                  "docker-entrypoint.s…"   26 minutes ago   Up 26 minutes      0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp                       mariadb-container

Вы должны увидеть свой контейнер MariaDB в списке.

Подключитесь к MariaDB

Чтобы установить клиент MariaDB, вы можете обратиться к этому сообщению.

Подключитесь к вашему серверу MariaDB с помощью клиента командной строки:

docker exec -it mariadb-container mariadb -uroot -p

При появлении запроса введите свой корневой пароль. Вы должны увидеть приглашение MariaDB:

MariaDB [(none)]>

В качестве альтернативы, если у вас установлен клиент MariaDB на вашем хост-компьютере:

mariadb -h 127.0.0.1 -P 3306 -u root -p

Создайте базу данных и пользователя

Теперь создайте базу данных и пользователя с соответствующими разрешениями:

CREATE DATABASE mydb;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

Настройте MariaDB (необязательно)

Если вам нужно настроить конфигурацию MariaDB, вы можете использовать собственный файл конфигурации:

  1. Создайте my.cnf файл в вашей хост-системе с вашими пользовательскими настройками
  2. Остановите и извлеките существующий контейнер:docker stop mariadb-container docker rm mariadb-container
  3. Запустите новый контейнер с подключенным конфигурационным файлом:docker run --name mariadb-container \ -e MARIADB_ROOT_PASSWORD=my-secret-pw \ -p 3306:3306 \ -v mariadb_data:/var/lib/mysql \ -v /path/to/my.cnf:/etc/mysql/conf.d/my.cnf \ -d mariadb

Общие операции

Чтобы остановить контейнер:

docker stop mariadb-container

Для запуска контейнера:

docker start mariadb-container

Чтобы перезапустить контейнер:

docker restart mariadb-container

Для просмотра журналов контейнеров

docker logs mariadb-container

Для производственных сред рекомендуется использовать Docker Compose. Создайте файл docker-compose.yml:

version: '3'
services:
  mariadb:
    image: mariadb
    container_name: mariadb-container
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: my-secret-pw
      MARIADB_DATABASE: mydb
      MARIADB_USER: myuser
      MARIADB_PASSWORD: mypassword
    ports:
      - '3306:3306'
    volumes:
      - mariadb_data:/var/lib/mysql
      # Uncomment to use custom configuration
      # - ./my.cnf:/etc/mysql/conf.d/my.cnf

volumes:
  mariadb_data:

Запустите свой контейнер MariaDB с помощью Docker Compose:

docker-compose up -d

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *