

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

# Lightsail コンテナサービスの Docker イメージの構築とテスト
<a name="amazon-lightsail-creating-container-images"></a>

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

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

このガイドの手順を完了するには、Docker の概要と機能についての基本的な理解が必要です。Docker の詳細については、「[Docker とは](https://aws.amazon.com/docker/)」、「[Docker の概要](https://docs.docker.com/get-started/overview/)」を参照してください。

**目次**
+ [ステップ 1: 前提条件を満たす](#create-container-image-prerequisite)
+ [ステップ 2: Dockerfile を作成してコンテナイメージを構築する](#create-container-image-create-dockerfile)
+ [ステップ 3: 新しいコンテナイメージを実行する](#create-container-image-run-container)
+ [（オプション）ステップ 4: ローカルマシンで実行されているコンテナをクリーンアップする](#create-container-image-cleanup)
+ [コンテナイメージの作成後の次のステップ](#create-container-image-next-steps)

## ステップ 1: 前提条件を満たす
<a name="create-container-image-prerequisite"></a>

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

## ステップ 2: Dockerfile を作成してコンテナイメージを構築する
<a name="create-container-image-create-dockerfile"></a>

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

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

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

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

1. コンテナイメージの設定方法に応じて次のコードブロックのいずれかをコピーし、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"]
     ```

1. コマンドプロンプトまたはターミナルウィンドウを開き、 Dockerfile を格納しているフォルダにディレクトリを変更します。

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

   ```
   docker build -t mystaticwebsite .
   ```

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

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

   ```
   docker images --filter reference=mystaticwebsite
   ```

   次の例に示すような結果が表示され、作成された新しいコンテナイメージが示されます。  
![\[ドッカー画像コマンドの結果\]](http://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/images/docker-images-command-result.png)

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

## ステップ 3: 新しいコンテナイメージを実行する
<a name="create-container-image-run-container"></a>

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

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

   ```
   docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
   ```

1. 次のコマンドを入力して、実行中のコンテナを表示します。

   ```
   docker container ls -a
   ```

   次の例に示すような結果が表示され、新しい実行中のコンテナが示されます。  
![\[ドッカーコンテナコマンドの結果\]](http://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/images/docker-container-command-result.png)

1. コンテナが起動して実行されていることを確認するには、新しいブラウザウィンドウで `http://localhost:8080` を開きます。次の例に示すようなメッセージが表示されます。これにより、コンテナがローカルマシン上で稼働していることが確認されます。  
![\[Docker コンテナで実行されている静的ウェブサイト\]](http://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

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

## （オプション）ステップ 4: ローカルマシンで実行されているコンテナをクリーンアップする
<a name="create-container-image-cleanup"></a>

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

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

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

   ```
   docker container ls -a
   ```

   次のような結果が表示され、ローカルマシンで実行されているコンテナの名前が一覧表示されます。  
![\[ドッカーコンテナコマンドの結果\]](http://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/images/docker-container-command-result.png)

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

   ```
   docker container rm <ContainerName> --force
   ```

   コマンドで、<ContainerName> (コンテナ名) を、削除する設定セットの名前で置き換えます。

   例:

   ```
   docker container rm mystaticwebsite --force
   ```

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

## コンテナイメージの作成後の次のステップ
<a name="create-container-image-next-steps"></a>

コンテナイメージを作成した後、デプロイの準備が整ったらそれらを Lightsail コンテナサービスにプッシュします。詳細については、「[Lightsail コンテナサービスイメージを管理する](amazon-lightsail-pushing-container-images.md)」を参照してください。

**Topics**
+ [ステップ 1: 前提条件を満たす](#create-container-image-prerequisite)
+ [ステップ 2: Dockerfile を作成してコンテナイメージを構築する](#create-container-image-create-dockerfile)
+ [ステップ 3: 新しいコンテナイメージを実行する](#create-container-image-run-container)
+ [（オプション）ステップ 4: ローカルマシンで実行されているコンテナをクリーンアップする](#create-container-image-cleanup)
+ [コンテナイメージの作成後の次のステップ](#create-container-image-next-steps)
+ [コンテナイメージの管理](amazon-lightsail-pushing-container-images.md)
+ [コンテナーサービスプラグインをインストールする](amazon-lightsail-install-software.md)
+ [ECR プライベートリポジトリへのアクセス](amazon-lightsail-container-service-ecr-private-repo-access.md)