Язык структурированных запросов (SQL) — наиболее часто используемый язык для доступа к записям базы данных и их обслуживания, а MySQL — это система управления реляционными базами данных, построенная на основе SQL. MySQL доступен как программное обеспечение с открытым исходным кодом бесплатно по лицензии GNU. Он поддерживается корпорацией Oracle. Итак, вот руководство по созданию MySQL с помощью Docker. Давайте погрузимся!
Что такое MySQL?
В 39 году более 2019% разработчиков по всему миру использовали MySQL, что сделало ее самой популярной базой данных. Хотя в нем не так много наворотов, как в PostgreSQL, он, тем не менее, подходит для самых разных приложений. MySQL является предпочтительным вариантом для масштабируемых веб-приложений, поскольку он по умолчанию включен в стек LAMP (Linux, HTTP-сервер Apache, MySQL и PHP).
MySQL также представляет собой небольшую базу данных, которую программисты могут использовать в огромных многоуровневых приложениях на производственных серверах приложений. Интеграция MySQL в ваш процесс дает множество преимуществ. Ниже приведены преимущества интеграции MySQL;
- MySQL поддерживает такие функции, как репликация Master-Slave и горизонтальное масштабирование.
- MySQL также поддерживает отчеты о разгрузке и географическое распределение данных.
- При использовании MyISAM Storage Engine только для чтения накладные расходы минимальны.
- Механизм хранения памяти MySQL может ускорить доступ к часто используемым таблицам.
- Кэш запросов доступен для часто используемых операторов.
- Учитывая обилие блогов, официальных документов и книг по этой теме, MySQL легко понять и отладить.
- MySQL также может адаптироваться к вашим потребностям и расти вместе с вашим бизнесом.
Что такое докер?
Цель Docker — упростить и стандартизировать процесс разработки программного обеспечения. Docker достигает этого, устраняя трудоемкие этапы настройки на протяжении всего жизненного цикла разработки, что позволяет легко, быстро и портативно создавать мобильные приложения как для облака, так и для настольных компьютеров. Полная комплексная платформа Docker включает в себя интерфейсы командной строки, графические пользовательские интерфейсы, интерфейсы программирования приложений и строгие функции безопасности, предназначенные для совместной работы на протяжении всего жизненного цикла доставки приложения.
Docker-контейнеры — это стандартизированная часть программного обеспечения, которая позволяет программистам отделить свое приложение от среды хост-системы, решая проблему ограниченных операций. Docker быстро стал стандартом де-факто для миллионов разработчиков на всех платформах, от облака до настольных компьютеров, когда дело доходит до совместного использования и создания контейнерных приложений. Это облегчает быстрое развертывание, требуя установки только одного пакета. Docker позволяет поддерживать единообразие в средах разработки и производства при локальном тестировании и кодировании.
Читайте также: ТОП-11 ЛУЧШИХ АЛЬТЕРНАТИВ DOCKER 2023 ГОДА: обзор
Предпосылки
Предпосылками являются следующие:
- Наличие терминала или командной строки, доступного вам
- Пользователь, который может войти в систему как root или имеет возможности sudo.
- Существующая настройка Docker
Запуск MySQL Docker-контейнера
Развертывание MySQL в контейнере — это быстрая и эффективная альтернатива, если вам нужно быстро и без использования слишком большого количества ресурсов настроить базу данных. Вы не должны использовать это для чего-то большего, чем проект среднего размера. Контейнер MySQL Docker также недостаточно мощный, чтобы удовлетворить требования корпоративного программного обеспечения.
Docker — популярный инструмент для настройки баз данных для легковесных приложений. Кроме того, вместо выделенного сервера для размещения баз данных можно использовать контейнер базы данных MySQL. На вашей машине может одновременно размещаться несколько контейнеров. Развернутая программа или программное обеспечение упаковывается в отдельные контейнеры, которые также используют ядро и библиотеки хоста. Из-за этого база данных невероятно мала и быстро загружается.
Как создать MySQL с помощью Docker
Процесс настройки базы данных Docker представляет собой не что иное, как создание контейнера из уже существующего образа MySQL. Чтобы настроить и запустить контейнер MySQL, просто следуйте инструкциям. Вот как создать Mysql с помощью Docker:
№1. Извлеките образ MySQL Docker
Для начала получите правильный образ MySQL Docker. Следующая команда демонстрирует, как загрузить конкретную версию или самое последнее обновление:
sudo docker pull mysql/mysql-server: последний
Просто замените желаемый номер версии MySQL на «последняя» в предыдущем операторе.
Перечислите загруженные образы Docker, чтобы убедиться, что образ успешно сохранен локально:
sudo докер изображения
Mysql/mysql-server должен быть одним из указанных изображений в выходных данных.
№2. Развертывание контейнера MySQL
Если у вас уже есть образ, вы можете приступить к развертыванию нового контейнера MySQL, используя:
sudo docker run –name=[имя_контейнера] -d [имя_тега_изображения]
- Замените другое имя контейнера на [имя_контейнера]. Docker назначит случайное имя, если вы его не укажете.
- Когда -d используется флаг, Docker управляет контейнером в фоновом режиме как службой.
- Замените имя изображения, которое вы скачали на шаге 1, на [имя_тега_изображения].
В этом примере мы создаем контейнер под названием mysql_docker у которого есть тег для последний Версия:
sudo docker run –name=[имя_контейнера] -d mysql/mysql-server:latest
Следующий шаг — проверка работы MySQL-контейнера:
docker ps
Вновь созданный контейнер должен появиться в выходных данных. Текущее состояние этой виртуальной среды является одной из включенных сведений о контейнере. После завершения первоначальной настройки статус изменится с здоровый: начиная в здоровый.
№3. Установите соединение с образом MySQL Docker.
- Клиентский пакет MySQL должен быть настроен до того, как контейнер сервера MySQL сможет взаимодействовать с хостом.
apt-get установить MySQL-клиент
- Сгенерированный пароль root можно найти в файле журналов контейнера MySQL, к которому вам следует получить доступ далее.
журналы sudo docker [имя_контейнера]
- При использовании mysql_docker контейнер, мы выполняем:
sudo docker регистрирует mysql_docker
Перейдите к выводу и найдите строку, начинающуюся с [Точка входа]. Скопируйте и вставьте сгенерированный пароль root в текстовый редактор или блокнот для сохранения.
- Чтобы получить доступ к оболочке bash контейнера MySQL, введите:
sudo docker exec -it [имя_контейнера] bash
В примере контейнера выполняются следующие команды:
sudo docker -it mysql_docker bash
При появлении запроса введите пароль root, который вы получили из файла журналов. Теперь клиент MySQL может взаимодействовать с сервером.
В качестве последнего шага по обеспечению безопасности данных вам следует обновить корневой пароль сервера.
mysql> ALTER USER 'root'@'localhost', ИДЕНТИФИЦИРОВАННЫЙ '[newpassword]';
Замените безопасный пароль по вашему выбору на [Новый пароль].
Как настроить контейнер Docker MySQL?
Вы можете просмотреть текущие настройки вашего Docker MySQL-контейнера, перейдя в '/etc/mysql/my.cnf=' каталог. Если вы хотите внести изменения в конфигурацию, вам нужно будет создать новый файл конфигурации в хост-системе, а затем смонтировать его внутри контейнера.
Шаг 1: Этот фрагмент кода создаст новый каталог в хост-системе.
sudo mkdir -p /root/docker/[имя_контейнера]/conf.d
Шаг 2: Затем введите следующую команду внутри этого каталога, чтобы создать уникальный файл конфигурации MySQL:
sudo nano /root/docker/[имя_контейнера]/conf.d/my-custom.cnf
Шаг 3: После открытия файла можно добавлять новые строки с необходимыми настройками. Например, в файл конфигурации можно добавить следующие строки, чтобы увеличить максимальное количество подключений со значения по умолчанию со 151 до 250.
[ТуздЫ]
макс_подключения = 250
Добавляя одну или несколько переменных среды в командную строку запуска Docker перед началом выполнения образа MySQL, вы можете изменить конфигурацию экземпляра MySQL. Следующие настройки не окажут влияния на поведение контейнера, если он запускается с каталогом данных, который уже содержит базу данных.
Корневой пароль Mysql
Пароль для учетной записи root-суперпользователя MySQL; обязательная переменная. В предыдущем случае использовался my-secret-pw.
База данных MySQL
Вы можете указать имя базы данных, которая будет создана при запуске образа, задав эту необязательную переменную. Эта база данных будет рассматривать пользователя, предоставившего имя пользователя и пароль, как суперпользователя, предоставляя ему полный доступ (так же, как GRANT ALL).
Пользователь MySQL и пароль MySQL — две переменные в MySQL
Создайте нового пользователя и укажите его пароль с помощью этих дополнительных настроек. Этому пользователю будут предоставлены права суперпользователя (как описано выше) в базе данных, заданной переменной MYSQL DATABASE. Для создания пользователя должны быть выполнены оба условия.
Суперпользователь root автоматически устанавливается с паролем, установленным в переменной MYSQL ROOT PASSWORD, поэтому для этого нет необходимости использовать эту процедуру.
Mysql Разрешить пустой пароль
Это добровольный параметр. Чтобы включить запуск контейнера без пароля пользователя root, установите для него непустое значение, например да. ВНИМАНИЕ: Если вы установите для этой переменной значение «да», любой пользователь сможет получить полный доступ суперпользователя к вашему экземпляру MySQL.
Случайный корневой пароль Mysql
Это добровольный параметр. Непустое значение, например «да» (с использованием pwgen), заставит систему сгенерировать случайный пароль для пользователя root. Сгенерированный пароль root: (GENERATED ROOT PASSWORD:…..) выводится на стандартный вывод.
Одноразовый пароль SQL в MySQL
После завершения инициализации пользователь root (не ПОЛЬЗОВАТЕЛЬ MYSQL!) будет указан как истекший, поэтому при первом входе в систему вам необходимо будет изменить свой пароль. Любое значение, отличное от нуля, активирует эту настройку. Обратите внимание, что для использования этой функции требуется MySQL 5.6 или новее. При использовании этого параметра во время инициализации MySQL 5.5 будет выдана полезная ошибка.
Mysql Initdb Пропустить Tzinfo
По умолчанию скрипт точки входа загрузит необходимые данные о часовом поясе для функции CONVERT TZ(). Если указано непустое значение, загрузка часового пояса будет запрещена.
Шаг 4: Сохраните свою работу и выйдите из системы. Теперь, когда контейнер MySQL удален, вам необходимо перезапустить его, чтобы изменения вступили в силу. Для этого контейнер использует как новый файл конфигурации, так и существующие файлы конфигурации контейнера. Следующий фрагмент кода запустит MySQL Docker Container и настроит сопоставление томов:
запуск докеров
–отсоединить
--name=[имя_контейнера]
--env="MYSQL_ROOT_PASSWORD=[мой_пароль]"
–опубликовать 6603:3306
–volume=/root/docker/[имя_контейнера]/conf.d:/etc/mysql/conf.d
MySQL
Шаг 5: Теперь вы можете запустить эту команду, чтобы увидеть, успешно ли Docker MySQL-контейнер импортировал конфигурацию хоста:
mysql -uroot -pmypassword -h127.0.0.1 -P6603 -e 'показать глобальные переменные, такие как «max_connections»';
Шаг 6: Теперь вы можете увидеть, сколько одновременных подключений может обработать ваш Docker MySQL-контейнер. Рекомендуемое количество ссылок — 250.
Запуск, остановка и перезапуск контейнера MySQL
Когда процесс внутри контейнера завершается, контейнер также завершает работу.
- Контейнер MySQL можно запустить, набрав:
sudo docker start [имя_контейнера]
- Чтобы завершить работу контейнера MySQL:
Тип: sudo docker остановить [имя_контейнера]
- Контейнер MySQL можно перезапустить, набрав:
sudo docker перезапустить [имя_контейнера]
Удалить контейнер MySQL
Прежде чем удалять работающий контейнер MySQL, необходимо сначала завершить работу.
После этого вы можете удалить Docker-контейнер следующим образом:
sudo docker rm [имя_контейнера]
Почему вы хотите использовать контейнер MySQL в Docker?
Вы можете значительно сократить время, необходимое для создания новых функций, используя контейнер Docker MySQL для создания кода с согласованными настройками и инфраструктурой. Имейте в виду, что образы Docker обычно довольно компактны. Новые контейнеры приложений также доставляются быстро и могут быть развернуты за меньшее время. Простота обслуживания — еще один важный плюс использования контейнеров Docker MySQL. Когда приложение помещено в контейнер, оно отделено от других программ, использующих тот же сервер. Поскольку программы не взаимодействуют друг с другом, это упрощает обслуживание приложений.
Должен ли я запускать MySQL в Docker?
Вы можете сохранить свою базу данных и код полностью независимыми, запустив MySQL в контейнере Docker. Помимо масштабирования вашего экземпляра сервера API отдельно от MySQL, вы можете использовать для этого оркестратор контейнеров, например Kubernetes. Согласованность — еще одно преимущество использования контейнеров.
В чем разница между MySQL и MariaDB?
MariaDB превосходит MySQL как по масштабируемости, так и по скорости запросов. По этой причине он полезен для обработки огромных объемов данных. MariaDB также имеет дополнительные возможности помимо MySQL, такие как механизмы хранения последовательностей и виртуальные столбцы. Однако в одной таблице можно использовать несколько механизмов.
Могу ли я запустить базу данных в Docker?
Docker позволяет моделировать среду удаленного сервера и тестировать подключение вашего приложения к базе данных.
Какая платформа лучше всего подходит для запуска Docker?
Ниже приведены лучшие платформы для запуска Docker:
- Каматера.
- Амазон ЭКС.
- AppFleet.
- Хероку.
- Google Cloud Run.
- Хостинг A2.
- Цифровой океан.
Docker по-прежнему лучший контейнер?
Docker не требуется в качестве среды выполнения контейнера в Kubernetes, но он по-прежнему играет важную роль в экосистеме Kubernetes и в вашем процессе. Даже сегодня Docker широко используется как инструмент для локального создания и выполнения образов контейнеров.
Заключение
После прочтения этой статьи вы сможете открыть контейнер MySQL. Docker и MySQL вместе могут стать отличным инструментом для облегченной программы. Пришло время начать исследование возможностей контейнера MySQL.
- Лучшее программное обеспечение для управления двором в 2023 году: (обзор)
- Как поделиться паролем WiFi на Mac
- ТОП-КОНКУРЕНТЫ И АЛЬТЕРНАТИВЫ OCTOPUS DEPLOY 2023 ГОДА
- ОБНОВЛЕНИЕ APT-GET против ОБНОВЛЕНИЯ APT-GET: в чем разница?