私はホスト システムをクリーンに保つことを強く信じています。 Docker コンテナはこれに対する完璧なソリューションです。 DB ニーズに合わせて、Node / Express バックエンドと MySQL サーバーを備えた React アプリに取り組んでいるとします。通常は、ホスト システムに mysql をインストールし、データベースを作成し、パスワードを持つユーザーを作成して、そのデータベースを操作する権限をユーザーに付与します。
プロジェクトごとに毎回これを構成するのに時間を無駄にするのではなく、Docker イメージを使用して MySQL データベース サーバーを作成するだけで、必要なセットアップがすべて完了して数秒で準備が整い、起動して実行できるようになります。絶対に必要です。
信じてください。このルートを使用してワークフローを理解したら、古い方法には決して戻ることはできません。そこで、私がどのように対処するか、そして非常にシンプルで基本的な方法を説明します。
Docker の使用経験があり、このチュートリアルをスキップして TLDR バージョンを直接使用したい場合は、この Gist の方がはるかに高速です。
Docker を使用するには、Docker が必要です。ここでは、Docker のインストールについては詳しく説明しません。 CLI に慣れていない場合、または Windows/MacOS を使用している場合は、Docker Desktop を使用してください。Docker Desktop は、面倒な作業をすべて裏で実行します。
Linux ユーザーは、その気にならなければ、Docker Compose プラグインまたは Docker Desktop を使用して Docker Engine をインストールすることもできます。
通常、使用する MySQL 公式イメージなどのパブリック イメージをダウンロードするために Docker Hub のアカウントは必要ありません。
これを行うには 2 つの方法があります。
docker run コマンドを使用してコンテナを直接実行できるようにするには、まずシステムに MySQL イメージをダウンロードしておく必要があります。イメージをシステムにプルするには、次のコマンドを使用するだけです:
docker pull mysql
注: MySQL の特定のバージョンが必要ない場合、このコマンドは最新のもの (latest タグが付いたもの) をダウンロードします。必要に応じて、Docker Hub からさらに多くのタグとバージョンを探索できます。
Docker のダウンロードが完了すると、ダウンロードしたイメージは次のように表示されます。
docker image ls
さて、コンテナを実行するには、docker run コマンドで多くのフラグを追加する必要があります。このリンクにアクセスして、すべてのオプションを確認できます。また、追加する必要があるすべてのフラグを覚えておく必要があります。これは、いくつかのフラグが欠けているとエラーがスローされたり、機能しないコンテナが起動したりする可能性があるためです。
さらに、コンテナを実行するたびに、ターミナルの履歴からこの長いコマンドを見つけ出すか、再度入力する必要があります。それは意味がありません。
これが、このアプローチをお勧めしない理由です。もっと良い方法があります。
コンテナの起動時に必要なものを Docker に伝える Docker Compose ファイルを作成します。すべてをファイル内に配置したら、コンテナーの起動は簡単になります。
注: 作成ファイルは任意の名前で作成できます。独自の名前を使用するか、作成ファイルを他のフォルダーに保存する場合、それを機能させるにはフラグ -f を指定する必要があります。あるいは、ファイルと同じフォルダーからコマンドを実行している場合は、ファイルに docker-compose.yaml という名前を付けることができます。
Docker Compose ファイルは YAML ファイルです。私たちのものは次のようになります:
# This Docker Compose YAML deploys a MySQL database services: container-name: image: mysql # Official MySQL image from Docker Hub restart: always environment: # Note - Root password is mandatory for the container to run and grant privileges to our User. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project # DB User Details MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: # Adjust this port as per your needs ->: - 3308:3306 # DB is available at localhost:3308 on the host. volumes: - ./volumes/db-mnt:/var/lib/mysql
このファイルは、冒頭で説明した Gist からも入手できます。
重要事項
このファイルは、作成ファイルと同じフォルダーに作成することも、任意の場所に作成することもできますが、docker-compose を呼び出すときにパスを指定する必要があります。
# Content of the Environment Variables file MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE=nameofdatabase MYSQL_USER=dbusername MYSQL_PASSWORD=dbuserpassword
これらすべてを準備したら、簡単なコマンドを 1 つ使用するだけで、データベースが起動して待機する準備が整います。
docker-compose up -d
これで、好みの手段を使用してデータベースに接続する準備が整いました。
また、構成ファイルからコンテナを実行するように構成したため、リポジトリ内の git システムに安全にバックアップできます。 .env ファイルを .gitignore するようにしてください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3