GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

DockerコンテナでMySQLを実行する方法:シンプルでわかりやすいガイド

このガイドでは、Dockerコンテナで実行される新しいMySQLサーバーをわずか数分でセットアップする方法を段階的に説明します。

Dockerの優れた点の1つは、Dockerをマシンに直接インストールせずに、すばやく使用してアプリケーションを試すことができることです。たとえば、Dockerを使用して、リモートサーバーとしてコンテナ内のデータベースを実行し、アプリケーションがデータベースとどのように相互作用するかをテストできます。

DockerコンテナでMySQLを実行することは、広く使用されているメカニズムです。 MySQLは、Dockerコンテナで使用される最も人気のあるデータベースの1つです。

MySQLをDockerコンテナとして作成するには、ホストマシンにDockerがインストールされている必要があります。インストールしていない場合は、UbuntuにDockerをインストールするためのステップバイステップガイドをご覧ください。

1。 MySQLDockerイメージをプルする

DockerでMySQLサーバーを作成してテストするために最初に行う必要があるのは、DockerHubからMySQLの公式イメージを取得することです。

次のコマンドに示すように、8.0、5.7、5.6などの特定のバージョンをダウンロードするか、最新のリリースを選択できます。

sudo docker pull mysql:latest

MySQLの特定のバージョンが必要な場合は、 latestを置き換えてください バージョン番号付き。

docker imagesを実行できます コマンドを使用して、DockerHubからプルしたDockerイメージのリストを表示します。

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

ご覧のとおり、MySQLイメージはローカルにインストールされたDockerで利用できるようになりました。

2。 Dockerボリュームのセットアップ

ご存知のように、Dockerコンテナーは原則として一時的なものであり、コンテナーが削除されるとデータや構成が失われることが予想されます。

ただし、Dockerボリュームは、Dockerコンテナー内で作成されたデータを永続化するメカニズムを提供します。したがって、Dockerコンテナの永続データを保存するためのDockerの推奨メカニズムです。

MySQLはデータファイルを/var / lib / mysqlに保存します ディレクトリ。そのため、デプロイする前に、データベースを永続化するためにDockerボリュームを設定する必要があります。そうしないと、コンテナの再起動時にデータが失われます。

新しいボリュームを作成して、 mysql-dataという名前を付けましょう 。すべてのデータベース情報を保存するために使用されます。

sudo docker volume create mysql-data

以下のコマンドを発行することで、Dockerが認識しているすべてのボリュームを一覧表示できます。

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

ご覧のとおり、新しく作成された mysql-dataという名前のDockerボリューム ここにあり、データを提供する準備ができています。その後、新しく回転したMySQLコンテナにアタッチできます。

3。 MySQLDockerコンテナを実行する

マシンにMySQLDockerイメージがあり、データを永続化するボリュームがで​​きたので、コンテナーをデプロイできます。また、 MYSQL_ROOT_PASSWORD を使用して、MySQLrootユーザーのパスワードを設定する必要があります。 環境変数。

それでは、コンテナを実行してみましょう:

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

それでおしまい。これにより、MySQLインスタンスの最新バージョンが起動します。これは、指定されたルートパスワードを使用してどこからでもリモートアクセスできます。

物事をより透明にするために、この構文を分解してみましょう。まず、そのコマンドの各パラメータの意味は次のとおりです。

  • -d このコンテナはデタッチモードで実行されるため、バックグラウンドで実行されます。
  • -名前 mysql-serverという名前を割り当てます コンテナインスタンスに。これを指定しない場合、Dockerはランダムな名前を生成します。
  • -p MySQLコンテナポート3306をバインドします ホストマシンの同じポートに接続します。 127.0.0.1に接続できるようになります ポート3306 MySQLクライアントを使用する( mysql )ホストで実行しています。
  • -v オプションは、コンテナボリューム内のそのデータフォルダをバインドします( / var / lib / mysql )ローカルDockerボリューム( mysql-data )前の手順で作成しました。
  • -e 環境変数を設定します。この場合、MySQLのルートパスワード。
  • mysql は、コンテナの作成に使用する画像の名前です。

実行中のコンテナを一覧表示することで、コンテナが実行されているかどうかを確認できます。

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4。 MySQLコンテナへの接続

コンテナにアタッチしてmysqlを実行することで、インタラクティブなMySQLシェルを取得できます。 指図。これにより、使い慣れたすべてのコマンドとフラグを使用するための完全なMySQLコマンドラインインターフェイスが提供されます。

sudo docker exec -it mysql-server mysql -u root -p

mysqlを使用してMySQLDockerインスタンスに接続することもできます ホストにプリインストールされている場合はクライアント。

デフォルトでは、mysqlクライアントは、 localhost に接続するように指示すると、UNIXソケットを使用して接続しようとすることに注意してください。 。したがって、 127.0.0.1を使用してください localhostではありません 。

mysql -u root -h 127.0.0.1 -p

もちろん、MySQLWorkbenchなどのGUIベースのクライアントを使用してデータベースに接続することもできます。たとえば、「ホスト名」のMySQL Workbenchで、Dockerコンテナを起動したマシンのIPアドレスを指定します。

もちろん、上記のホスト名の例では、127.0.0.1の代わりに、MySQLDockerコンテナが機能しているマシンのIPアドレスを使用できます。

このアドレスは、 ifconfigを実行することで見つけることができます 引数なしのコマンド。

マシンのIPアドレスを使用すると、MySQLサーバーにリモートでアクセスできます。

5。 MySQLコンテナを停止、開始、再起動します

このコマンドは一時的に停止します 実行中のMySQLコンテナ(後で再開/再開できます):

sudo docker stop mysql-server

開始 MySQLコンテナ、実行:

sudo docker start mysql-server

以下のコマンドは、再起動に使用されます 実行中のMySQLコンテナ:

sudo docker restart mysql-server

結論

ご覧のとおり、Docker内でMySQLを実行する方が、MySQLサーバーをローカルにインストールするよりもはるかに高速で簡単です。ただし、テスト以外の目的でDockerでMySQLを使用する場合は、さらに多くの考慮事項があります。

詳細については、Docker HubのMySQLページと、このテーマに関する公式のMySQLマニュアルを確認してください。

ご不明な点やご提案がございましたら、お気軽にお問い合わせください。喜んでフォローアップさせていただきます。


Docker
  1. DockerコンテナでNginxを実行する方法:ステップバイステップガイド

  2. Dockerを使用してWordPressをインストールする方法、わかりやすいガイド

  3. DockerコンテナにシンプルなApacheWebサーバーをセットアップする方法

  1. Dockerコンテナ内でプログラムを実行する方法は?

  2. DockerコンテナでMySQLを実行する方法

  3. Dockerコンテナで実行されるプログラムにシグナルを送信するには?

  1. 実行中のDockerコンテナでコマンドを実行する方法

  2. テスト用の MySQL Docker コンテナを作成する方法

  3. ユーザーを Docker コンテナに追加するにはどうすればよいですか?