MySQL в контейнере Docker: пошаговая инструкция для начинающих.

Что такое Docker и зачем использовать его для MySQL

Docker — это платформа для создания, запуска и управления контейнерами. Контейнеры позволяют запускать приложения в изолированной среде, что делает их удобными для разработки, тестирования и развертывания.

Использование MySQL в Docker обеспечивает ряд преимуществ:

  • Быстрый запуск базы данных;
  • Изоляция и безопасность;
  • Простота обновления и миграции;
  • Возможность быстро развернуть базу данных на любой машине.

Если у вас еще не установлен Docker, то вам помогут наши статьи по установке на Windows и Linux. Здесь мы сосредоточимся на том, как запустить и настроить MySQL внутри контейнера.

Как запустить MySQL в Docker: пошаговая инструкция

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 — это удобно, быстро и безопасно. Главное — правильно настроить контейнер: задать пароль, пробросить порты и подключить постоянное хранилище данных.

Это позволит вам работать с базой данных без лишних хлопот и быстро развернуть ее в любой среде.