Что такое Docker и зачем использовать его для MySQL
Docker — это платформа для создания, запуска и управления контейнерами. Контейнеры позволяют запускать приложения в изолированной среде, что делает их удобными для разработки, тестирования и развертывания.
Использование MySQL в Docker обеспечивает ряд преимуществ:
- Быстрый запуск базы данных;
- Изоляция и безопасность;
- Простота обновления и миграции;
- Возможность быстро развернуть базу данных на любой машине.
Если у вас еще не установлен Docker, то вам помогут наши статьи по установке на Windows и Linux. Здесь мы сосредоточимся на том, как запустить и настроить MySQL внутри контейнера.
Как запустить MySQL в Docker: пошаговая инструкция
- 1. Получение образа MySQL
- 2. Запуск контейнера с MySQL
- 3. Проверка работы базы данных
- 4. Подключение к MySQL
1. Получение образа MySQL
Первым шагом необходимо скачать официальный образ MySQL с Docker Hub — репозитория контейнерных образов. Для этого используется команда docker pull:
[root@waky practice]# docker pull mysql:latest
latest: Pulling from library/mysql
023a182c62a0: Pull complete
f5f78fcd9ccb: Pull complete
494c372d15c3: Pull complete
dcee80f7340c: Pull complete
480d01bd7a6a: Pull complete
834e15e3ed24: Pull complete
c276de9b5571: Pull complete
0cd145fbb449: Pull complete
5a3f7744d0e7: Pull complete
21aa606d8d58: Pull complete
Digest: sha256:569c4128dfa625ac2ac62cdd8af588a3a6a60a049d1a8d8f0fac95880ecdbbe5
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
[root@waky ~]#
Здесь latest — тег последней версии MySQL. Можно указать конкретную версию, например, mysql:8.0.
2. Запуск контейнера с MySQL
Следующий шаг — запуск контейнера с базой данных. Для этого используется команда docker run:
[root@waky practice]# docker run -d --name my_mysql_container -e MYSQL_ROOT_PASSWORD=mypassword -v ./database_files:/var/lib/mysql -p 3306:3306 mysql:latest
9b39feb5e8c5b5f40e35c30cee1e17944f8a57d65f0d419cd622e26c14046f58
[root@waky practice]#
Использованные параметры:
-d — запуск в фоновом режиме
—name my_mysql_container — задает имя контейнера
-e MYSQL_ROOT_PASSWORD=пароль — устанавливает пароль для пользователя root
–v ./ database_files:/var/lib/mysql – монтирование директории с файлами базы из контейнера в локальную директорию
-p 3306:3306 — пробрасывает порт 3306 контейнера на локальный порт
mysql:latest – образ используемый для создания контейнера
После выполнения этой команды у вас запустится контейнер с работающей MySQL.
3. Проверка работы базы данных
Чтобы убедиться, что контейнер запущен, выполните команду docker ps:
[root@waky practice]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b39feb5e8c5 mysql:latest "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp my_mysql_container
[root@waky practice]#
Она отобразит список активных контейнеров.
4. Подключение к MySQL
Подключиться к базе внутри контейнера можно двумя способами, через консоль контейнера или через клиент mysql.
Если нужно подключиться напрямую к базе внутри контейнера, используйте команду docker exec:
[root@waky practice]# docker exec -it my_mysql_container mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.5.0 MySQL Community Server - GPL
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
[root@waky practice]#
Использованные параметры:
-it my_mysql_container – интерактивная псевдо консоль контейнера
mysql -u root -p – команда к выполнению, указываем пользователя (-u) и подключение по паролю (-p)
Для подключения введите пароль указанный (-e MYSQL_ROOT_PASSWORD=пароль) при создании контейнера.
Если у вас установлен mysql клиент, можно подключиться к базе данных с его помощью, указав локальный адрес хоста (–h), порт (–P), пользователя (–u) и пароль (–p), который вы задали при создании контейнера.
[root@waky practice]# mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 9.5.0 MySQL Community Server - GPL
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
[root@waky practice]#
Попав в консоль MySQLмы можем начать создавать базы, таблицы, пользователей и проводить с ними все привычные операции.
Заключение
Использование MySQL в контейнере Docker — это удобно, быстро и безопасно. Главное — правильно настроить контейнер: задать пароль, пробросить порты и подключить постоянное хранилище данных.
Это позволит вам работать с базой данных без лишних хлопот и быстро развернуть ее в любой среде.