Эта статья была первоначально опубликована в моем блоге, посетите его здесь.
Это лучший способ начать, поскольку вам не нужно устанавливать MySQL локально, настраивать его и сталкиваться с тысячами проблем и в конце концов не иметь возможности сделать это, docker делает это намного проще для меня и, возможно, для вас тоже, чтобы раскрутить базу данных MySQL за считанные минуты.
Чтобы начать, выполните следующие шаги:
- Загрузите последний образ,
docker pull mysql:latest
Вам не нужно делать это вручную, он загрузится автоматически, если не установлен, когда мы запустим контейнер.
- Запустите контейнер с помощью следующей команды
docker run --name <container_name> -p 3306:3306 -v mysql_volume:/var/lib/mysql/ -d -e "MYSQL_ROOT_PASSWORD=<root_password>" mysql
Это создаст новый контейнер с именем , с образом mysql:latest
и опубликует порты 3306
в локальном окружении для использования экземпляра вне контейнера.
Это также устанавливает том для контейнера для сохранения данных базы данных, чтобы они не сбрасывались при перезагрузке хост-системы или контейнера.
Мы также передаем переменную окружения MYSQL_ROOT_PASSWORD для установки пароля root для базы данных.
Если она не задана, то будет сгенерирован случайный надежный пароль, мы можем увидеть его в журналах контейнера с помощью этой команды:
docker container logs <container_name>
Вы можете передать следующие переменные окружения при запуске контейнера:
Не передавайте постоянный пароль в production, так как пароль будет виден в истории оболочки, чего мы явно не хотим.
Возможным решением является передача временного пароля типа temp123 и последующее его изменение.
Мы можем изменить пароль root следующим образом:
- Войдите в контейнер с помощью
docker exec -it <container_name> bash`.
- Войдите в оболочку MySQL, используя
mysql -u root -p
В результате вам будет предложено ввести пароль, который мы установили ранее, в нашем случае это был temp123.
- После входа в оболочку выполните следующий SQL-запрос, чтобы изменить пароль
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
Ссылки:
- Просмотреть эту статью в Instapaper с заметками.
- Посмотреть оригинал здесь.