Docker コンテナー内で複数のサービスを実行する方法を学習しますか? このチュートリアルでは、Ubuntu Linux を実行しているコンピューター上の Docker コンテナー内で複数のサービスを実行するために必要なすべての手順を示します。

• Ubuntu 18.04
• Ubuntu 19.10
• ドッカー 19.03.6

この例では、1 つの Docker コンテナーが MySQL サービスと Apache サービスを実行します。

Apache サービスは TCP ポート 80 でリッスンします。

MySQL サービスは TCP ポート 3306 でリッスンします。

チュートリアルドッカー - 複数のサービスを実行するコンテナ

Docker サービスをインストールします。

Copy to Clipboard

オンラインリポジトリからUbuntuドッカーイメージをダウンロードします。

Copy to Clipboard

システムにインストールされている Docker イメージを一覧表示します。

Copy to Clipboard

コマンド出力は次のとおりです。

Copy to Clipboard

この Docker イメージを使用して、新しい Ubuntu コンテナーを開始します。

Copy to Clipboard

これで、コンテナーのコマンド ラインに入ります。

Copy to Clipboard

この例では、Ubuntu イメージを使用して新しいコンテナを起動しました。

この例では、コンテナー ID は 62f9adcafb62 です。

この例では、コンテナの名前は MYCONTAINER でした。

必要なパッケージの一覧をインストールします。

Copy to Clipboard

Apache サービスをインストールします。

Copy to Clipboard

システムはタイムゾーンの選択を要求します。

Copy to Clipboard

この例では、アメリカ、サンパウロにタイムゾーンを設定しました。

Copy to Clipboard

MySQL サービスをインストールします。

Copy to Clipboard

mysqld.cnf という名前の MySQL 構成ファイルを編集します。

Copy to Clipboard

構成ファイル内で、次の行を見つけます。

Copy to Clipboard

この行の値を 0.0.0.0 に変更します。

Copy to Clipboard

コンテナ内で MySQL サービスを手動で開始します。

Copy to Clipboard

MySQL コマンドラインにアクセスします。

Copy to Clipboard

MySQL ルートユーザーのパスワードを設定します。

Copy to Clipboard

この例では、root ユーザーのパスワードが kamisama123 に設定されています。

supervisord.conf という名前のコンフィギュレーション ファイルを作成します。

Copy to Clipboard

ここにファイルの内容があります。

Copy to Clipboard

コンテナのルート ディレクトリに、run.shという名前のスクリプトを作成します。

Copy to Clipboard

ここにファイルの内容があります。

Copy to Clipboard

正しいファイルアクセス権を設定します。

Copy to Clipboard

コンテナーのコマンド ラインを終了します。

Copy to Clipboard

このコンテナーに基づいて Docker イメージを作成します。

Copy to Clipboard

この例では、MYCONTAINER という名前のコンテナーに基づいて、MYIMAGE という名前の Docker イメージを作成しました。

作成したイメージを使用して、新しい Docker コンテナーを開始します。

Copy to Clipboard

Apache サービスへのアクセスをテストします。

Copy to Clipboard

コマンド出力は次のとおりです。

Copy to Clipboard

MySQL サービスへのアクセスをテストします。

Copy to Clipboard

コマンド出力は次のとおりです。

Copy to Clipboard

おめでとう! 複数のサービスを提供する Docker イメージの作成が完了しました。