まず、Dockerfileと呼ばれる特定の形式のファイルが必要です。このファイルには、イメージの構築手順や依存関係などが定義されます。以下は、例としてDockerfileの内容です:
# ベースイメージの指定
FROM ubuntu:latest
# 追加の依存関係のインストール
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
# アプリケーションファイルのコピー
COPY app.py /app/app.py
# 必要なポートの公開
EXPOSE 8080
# コンテナの起動時に実行するコマンド
CMD ["python3", "/app/app.py"]
上記のDockerfileでは、最新のUbuntuイメージをベースにしています。それに続いて、Python 3とpipのインストールが行われ、アプリケーションファイルがコピーされます。最後に、コンテナが起動した際に実行されるコマンドが指定されています。
次に、Dockerイメージをビルドします。以下のコマンドを使用します:
docker build -t myapp:latest .
上記のコマンドでは、カレントディレクトリのDockerfileを使用して"myapp"という名前のイメージをビルドしています。
ビルドが完了したら、次にDockerコンテナを作成します。以下のコマンドを使用します:
docker run -d -p 8080:8080 --name mycontainer myapp:latest
上記のコマンドでは、ホストのポート8080をコンテナのポート8080にマッピングし、"mycontainer"という名前のコンテナを作成しています。
これで、Dockerイメージとコンテナが作成されました。作成されたコンテナはバックグラウンドで実行され、ホストのポート8080を介してアクセスできるようになります。
以上が、Dockerイメージとコンテナの作成方法と例です。これにより、アプリケーションの環境依存性を排除し、簡単に再現可能な環境を構築できます。