MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLDockerコンテナの作成


Docker Containerizationの最も重要な機能の1つは、必要なすべての依存関係とパッケージがインストールされた状態でアプリケーションを実行するための制限された環境を作成することです。ほとんどのアプリケーションでは、データポイントを格納するためにバックエンドデータベースが必要です。 Oracleは、コンテナ内でMySQLを実行するためのDockerイメージを提供しているため、データベースアプリケーションをテストするための優れた選択肢になります。テストが完了すると、軽量のMySQLイメージインスタンスにクリーンアップ機能が提供されます。

Dockerを使用すると、MySQLのバイナリと依存関係を含むイメージをダウンロードして、仮想ファイルシステムを作成できます。 --- rmフラグを指定してDockerコンテナを起動すると、コンテナを停止した後、ファイルシステム全体とコンテナインスタンスが削除されるため、このフラグをrunコマンドと組み合わせると、テスト用の自動クリーンアップ機能が提供されることに注意してください。アプリケーション。

この記事では、アプリケーションをテストするためのMySQLDockerコンテナを作成する方法を説明します。

MySQL用のDockerコンテナの作成

以下のコマンドは、最新バージョンのMySQLイメージのインスタンスを作成し、それに加えて、--- rmフラグは、コンテナが停止したときにファイルシステムとともにコンテナを削除するのに役立ちます。

sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server

上記のコマンドで、--- rmフラグは、Dockerデーモンが停止した後にコンテナファイルシステムを削除するように指示します。 --nameフラグは、コンテナに名前を提供します。 「-eMYSQL_ALLOW_EMPTY_PASSWORD=yes」は、コンテナに空のルートパスワードを作成するように指示します。

MySQLDockerコンテナの実行

MySQLクライアントプログラムはローカルソケット接続を使用します。つまり、ローカルホストを介して接続します。ローカルのMySQL接続を作成するには、次のコマンドを使用できます。

sudo docker exec −it mysql−test mysql −uroot

幹部 命令は、DockerデーモンにDockerコンテナ内で指定されたコマンドを実行するように指示します。 -itフラグは、インタラクティブシェルでコンテナを開くようにDockerに指示します。 Dockerコンテナ内で実行されるシェルコマンドは「mysql-uroot」です。

TCP/IPを使用したクライアントアクセス

前の手順でコマンドを実行した後、DockerはプライベートIPアドレスをDockerコンテナに割り当てます。また、システム上にネットワークインターフェイスを作成します。これらは、サービスへのTCP/IP接続を作成するためのエンドポイントとして使用できます。

2つのエンドポイント間にTCP/IP接続を作成しない限り、MySQLサービスにアクセスすることはできません。そのためには、システムとDockerコンテナインスタンスの仮想ネットワークインターフェイスのIPアドレスを確認する必要があります。以下のコマンドを使用してこれを行うことができます。

システム内のネットワークインターフェイスのIPアドレスを見つけるには、-

を実行します。
ip addr show docker0

上記のコマンドを使用して取得したIPアドレスは、クライアントアプリケーションが接続するエンドポイントの1つになり、MySQLのユーザーを作成するために使用します。

MySQL用のDockerコンテナインスタンスのIPアドレスである他のエンドポイントを見つけるには、次のコマンドを使用できます-

sudo docker mysql−test

これらの2つのIPアドレスを使用して、先に進み、TCP / IP接続を作成し、クライアントアプリケーションを実行するユーザーを作成できます。

パスワードなしでrootユーザーとしてローカルシステムを作成するには、これらのコマンドを使用できます。

システムのターミナル内で、mysql-testDockerContainerを実行してmysqlシェルにアクセスします。

sudo docker exec −it mysql−test mysql −uroot

mysqlシェルにアクセスできるようになったら、その中でこのコマンドを実行して、rootユーザーとしてローカルシステムを作成します。

create user root@<virtual network interface IP> identified by '';
で識別されるユーザーroot@<仮想ネットワークインターフェイスIP>を作成します

上記のコマンドで使用されるIPアドレスは、前の手順で見つけたローカルマシンの仮想ネットワークインターフェイスのIPアドレスである必要があることに注意してください。

上で作成したユーザーにすべてのアクセスを許可するには、このコマンドを使用します。

grant all on *.* to root@<virtual network interface IP> with grant option;

すべてのテストを実行した後に自動クリーンアップを実行するには、コンテナを停止し、停止を使用して削除するだけです。 およびrm コマンド。

結論として、この記事では、MySQL Dockerコンテナを作成して起動し、Linuxマシンの仮想ネットワークインターフェイスとDockerコンテナの間にTCP/IP接続を作成してアクセスする方法について説明しました。 rootユーザーを作成し、すべてのアクセスを許可しました。


  1. MySQLでテーブルを作成する-Hibernate

    テーブルを作成するには、以下の行をapplication.propertiesに挿入する必要があります- spring.jpa.hibernate.ddl-auto=update ここで、Hibernateはテーブルdemo88を自動的に作成します。 application.propertiesコードは次のとおりです- spring.datasource.platform=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.hibernate.ddl-auto=upda

  2. MongoDBをDockerコンテナとしてデプロイする

    最もアクセスしやすいNoSQLデータベースの1つであるMongoDB®には、多くの利用可能なデプロイメントオプションがあります。この投稿では、Docker®を使用してMongoDBをコンテナーとしてデプロイし、シェルクライアントを使用してそのコンテナーと対話します。 はじめに コンピューターまたはサーバーにDockerをインストールした後、次の手順を実行してMongoDBをDockerコンテナーとしてデプロイします。 最新または特定のMongoDBDockerイメージをダウンロードします。 MongoDBのインスタンスをコンテナーとしてデプロイします。 基本的なシェル操作でMongoDBD