LAPOZ-AI
About

Welcome to our Website
LAPOZ-AI

Start a conversation with AI with GPT!

今さらだけど、DockerでMySQLのセットアップについて調べてみた

2022年06月19日

そもそもDockerの役割とは?

  1. 環境の一貫性: Dockerコンテナはアプリケーションとその依存関係を含んでおり、開発環境、テスト環境、本番環境など、どの環境でも同じように動作します。これにより、「私のマシンでは動作するが他のマシンでは動作しない」という問題を防ぐことができます。
  2. 分離とセキュリティ: Dockerコンテナは他のコンテナやホストシステムから隔離されて実行されます。これにより、各アプリケーションの依存関係を管理しやすくなり、また、一つのアプリケーションが他のアプリケーションに影響を及ぼすことを防ぐことができます。
  3. 移植性と拡張性: DockerコンテナはどのDocker環境でも動作します。これにより、アプリケーションを一つの環境から別の環境へ簡単に移行したり、スケールアウト(水平スケーリング)したりすることができます。

MySQLではどんな役割か?

  • 環境の準備: Dockerを使うと、MySQLのインストールや設定が必要なく、簡単にMySQLサーバーを起動することができます。Docker Hubには公式のMySQLイメージが用意されており、これを使うことで手軽にMySQLの環境を整えることができます。
  • バージョン管理: Dockerを使うと、MySQLのバージョンを容易に切り替えることができます。これにより、異なるバージョンのMySQLを試すことや、特定のバージョンのMySQLを使ってアプリケーションをテストすることが容易になります。
  • 隔離: Dockerコンテナはホストシステムから隔離されているため、MySQLのインストールや設定がホストシステムに影響を及ぼすことがありません。また、一つのマシンで複数のMySQLサーバーを立ち上げることも可能です。

手順について

Docker-hubからMySQLのイメージをインストールする

 $ docker pull mysql:tag

※:tagはversionを指定する。デフォルトは:latest

インストールしたイメージから、コンテナを起動・作成する 

MYSQL_ROOT_PASSWORDにログインする際のパスワードを設定する

$ docker run -it --name test-wolrd-mysql -e MYSQL_ROOT_PASSWORD=mysql -d mysql:latest 

※ポート指定版は下記

#docker run: Dockerコンテナを作成して実行します。このコマンドは新しいコンテナを作成し、そのコンテナで指定されたイメージ(mysql:latest)を実行します。
#-p 33306:3306: Dockerコンテナのポート(3306)をホストマシンのポート(33306)にマッピングします。これにより、ホストマシンから localhost:33306を通じてMySQLにアクセスできます。
#--name db_hoge: このコンテナにdb_hogeという名前をつけます。
#-d mysql:latest: デタッチモード(バックグラウンドモード)でmysql:latestイメージを実行します。
$ docker run -p 33306:3306 -it --name db_hoge -e MYSQL_ROOT_PASSWORD=hoge -d mysql:latest
#実行中のdb_hogeコンテナでbashコマンドをインタラクティブモードで実行します。これにより、コンテナのシェルにアクセスできます。
$ docker exec -it db_hoge bash -p

MySQLのコンテナにログインする

$ mysql -u root -p -h 127.0.0.1 

ログイン完了!

 

参考: https://qiita.com/TAMIYAN/items/ed9ec892d91e5af962c6