Прежде чем начать, убедитесь, что в системе установлен 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 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, вы можете использовать собственный файл конфигурации:
- Создайте
my.cnf
файл в вашей хост-системе с вашими пользовательскими настройками - Остановите и извлеките существующий контейнер:
docker stop mariadb-container docker rm mariadb-container
- Запустите новый контейнер с подключенным конфигурационным файлом:
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. Создайте файл 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