Lightsail コンテナサービスの Docker イメージを構築してテストする - Amazon Lightsail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lightsail コンテナサービスの Docker イメージを構築してテストする

Docker を使用して、コンテナに基づいた分散アプリケーションの構築、実行、テスト、デプロイを行えます。Amazon Lightsail コンテナサービスは、デプロイで Docker コンテナイメージを使用してコンテナを起動します。

このガイドでは、Dockerfile を使用してローカルマシン上にコンテナイメージを作成する方法を説明します。イメージが作成されたら、そのイメージを Lightsail コンテナサービスにプッシュしてデプロイできます。

このガイドの手順を完了するには、Docker の概要と機能についての基本的な理解が必要です。Docker の詳細については、「Docker とは」、「Docker の概要」を参照してください。

目次

ステップ 1: 前提条件を満たす

作業を開始する前に、コンテナの作成に必要なソフトウェアをインストールし、Lightsail コンテナサービスにプッシュする必要があります。たとえば、Docker をインストールして使用して、Lightsail コンテナサービスで使用できるコンテナイメージを作成してビルドする必要があります。詳細については、「Amazon Lightsail コンテナサービスのコンテナイメージを管理するソフトウェアのインストール」を参照してください。

ステップ 2: Dockerfile を作成してコンテナイメージを構築する

以下のステップを実行して Dockerfile を作成し、mystaticwebsite Docker コンテナイメージを構築します。コンテナイメージは、Ubuntu の Apache ウェブサーバーでホストされている単純な静的ウェブサイト用です。

  1. mystaticwebsite の作成フォルダを作成し、Dockerfile を保存するローカルマシン上に配置します。

  2. 先ほど作成したフォルダに Dockerfile を作成します。

    Dockerfile は、.TXT のようなファイル拡張子を使用しません。完全なファイル名は Dockerfile です。

  3. コンテナイメージの設定方法に応じて次のコードブロックのいずれかをコピーし、Dockerfile に貼り付けます。

    • Hello World メッセージを含む単純な静的なウェブサイトコンテナイメージを作成する場合、次のコードブロックをコピーして Dockerfile に貼り付けます。このコードサンプルは Ubuntu 18.04 イメージを使用します。RUN の手順により、パッケージキャッシュが更新され、Apache がインストールされて設定されてから、Hello World のメッセージがウェブサーバーのドキュメントルートに出力されます。EXPOSE の命令はコンテナ上のポート 80 を公開し、CMD の命令はウェブサーバーを起動します。

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Open port 80 EXPOSE 80 # Start Apache service CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
    • 静的ウェブサイトコンテナイメージに独自の HTML ファイルセットを使用する場合には、html フォルダを Dockerfile の保存先と同じフォルダに配置します。次に、HTML ファイルをそのフォルダに入れます。

      HTML ファイルを html フォルダに保存したら、次のコードブロックをコピーして Dockerfile に貼り付けます。このコードサンプルは Ubuntu 18.04 イメージを使用します。RUN の命令はパッケージキャッシュを更新し、Apache をインストールして設定します。COPY の命令は html フォルダの内容をウェブサーバーのドキュメントルートにコピーします。EXPOSE の命令はコンテナ上のポート 80 を公開し、CMDの命令はウェブサーバーを起動します。

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Copy html directory files COPY html /var/www/html/ # Open port 80 EXPOSE 80 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
  4. コマンドプロンプトまたはターミナルウィンドウを開き、 Dockerfile を格納しているフォルダにディレクトリを変更します。

  5. 次のコマンドを入力して、フォルダ内の Dockerfile を使用してコンテナイメージを構築します。このコマンドは、 mystaticwebsite という新しい Docker コンテナイメージをビルドします。

    docker build -t mystaticwebsite .

    イメージが正常に構築されたことを確認するメッセージが表示されます。

  6. 次のコマンドを入力して、ローカルマシン上のコンテナイメージを表示します。

    docker images --filter reference=mystaticwebsite

    次の例に示すような結果が表示され、作成された新しいコンテナイメージが示されます。

    ドッカー画像コマンドの結果

    新しく構築したコンテナイメージは、ローカルマシン上で新しいコンテナを実行させることによってテストすることができます。次の手順は、本ガイドの「ステップ 3: 新しいコンテナイメージを実行する」セクションを参照してください。

ステップ 3: 新しいコンテナイメージを実行する

作成した新しいコンテナイメージを実行するには、以下の手順に従います。

  1. コマンドプロンプトまたはターミナルウィンドウに次のコマンドを入力して、本ガイドの「ステップ 2: Dockerfile を作成してコンテナイメージを構築する」のセクションで構築したコンテナーイメージを実行します。-p 8080:80 オプションは、コンテナ上の公開されたポート 80 をホストシステム上のポート 8080 にマッピングします。-d オプションは、コンテナをデタッチモードで実行するように指定します。

    docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
  2. 次のコマンドを入力して、実行中のコンテナを表示します。

    docker container ls -a

    次の例に示すような結果が表示され、新しい実行中のコンテナが示されます。

    ドッカーコンテナコマンドの結果
  3. コンテナが起動して実行されていることを確認するには、新しいブラウザウィンドウで http://localhost:8080 を開きます。次の例に示すようなメッセージが表示されます。これにより、コンテナがローカルマシン上で稼働していることが確認されます。

    Docker コンテナで実行されている静的ウェブサイト

    新しく構築されたコンテナイメージを Lightsail アカウントにプッシュする準備が整いました。これにより、Lightsail コンテナサービスにデプロイできるようになります。詳細については、「Amazon Lightsail コンテナサービスでのコンテナイメージのプッシュと管理」を参照してください。

(オプション)ステップ 4: ローカルマシンで実行されているコンテナをクリーンアップする

Lightsail コンテナサービスにプッシュできるコンテナイメージを作成したので、このガイドの手順に従って、ローカルマシンで実行されているコンテナをクリーンアップします。

ローカルマシンで実行されているコンテナをクリーンアップするには、以下の手順にを実行します。

  1. ローカルマシンで実行されているコンテナを表示するには、次のコマンドを実行します。

    docker container ls -a

    次のような結果が表示され、ローカルマシンで実行されているコンテナの名前が一覧表示されます。

    ドッカーコンテナコマンドの結果
  2. 次のコマンドを実行して、このガイドの前述の部分で作成した実行中のコンテナを削除します。これにより、コンテナは強制的に停止され、完全に削除されます。

    docker container rm <ContainerName> --force

    コマンドで、<ContainerName> を停止するコンテナの名前に置き換え、削除します。

    例:

    docker container rm mystaticwebsite --force

    このガイドを元に作成されたコンテナは削除されます。

コンテナイメージの作成後の次のステップ

コンテナイメージを作成し、デプロイする準備ができたら、 Lightsail コンテナサービスにプッシュします。詳細については、「Lightsail コンテナサービスイメージの管理」を参照してください。