【Docker】サンプルアプリ作成~コンテナ起動までの手順を解説

目次

①サンプルアプリ作成

「Hello, Docker!」が表示されるシンプルな Web アプリケーション(Flask)を作成します。

STEP
①-1 プロジェクト作成

ターミナル(コマンドプロンプト、PowerShell 等)で以下コマンドを実行します。

mkdir my-docker-app && cd my-docker-app
STEP
①-2 Webアプリケーション(Flask)作成

①-1で作成した新規ディレクトリ内にapp.pyを作成します。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Cloud Run!"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)
STEP
①-3 requirements.txtの作成

①-1で作成したディレクトリ配下に「requirements.txt」を作成します。

Flask==2.0.3
gunicorn==20.1.0

②Dockerfileの作成

コンテナの構成を記述する「Dockerfile」を作成します。

# 1. Pythonの公式イメージをベースに使用
FROM python:3.9

# 2. 作業ディレクトリを設定
WORKDIR /app

# 3. 必要なパッケージをインストール
COPY requirements.txt .
RUN pip install -r requirements.txt

# 4. アプリケーションのコードをコピー
COPY . .

# 5. コンテナ起動時に実行するコマンド
CMD ["python", "app.py"]

■解説

  • FROM python:3.9
    • Python 3.9 の公式 Docker イメージをベースに使用
  • WORKDIR /app
    • コンテナ内の作業ディレクトリを /app に設定
  • COPY requirements.txt .
    • requirements.txt をコンテナ内の /app にコピー
  • RUN pip install -r requirements.txt
    • requirements.txt に記載された Python パッケージをインストール
  • COPY . .
    • ローカルのすべてのファイルをコンテナ内の /app にコピー
  • CMD ["python", "app.py"]
    • コンテナ起動時に python app.py を実行

③Docker Desktopのインストール

STEP
③-1 Docker Desktopのインストーラーをダウンロード

Docker Desktopの公式サイトから、インストーラーをダウンロードします。

STEP
③-2 インストーラーの実行

③-1でダウンロードしたインストーラーを実行し、再起動します。

STEP
③-3 wsl2をインストール

以下コマンドを実行します。

wsl --install

④Dockerイメージの作成

作成したDockerfileをもとにDockerイメージを作成します。

STEP
④-1 Dockerイメージ作成

以下コマンドを実行します。

docker build -t my-flask-app .
  • -t my-flask-app :作成するイメージの名前
  • . :カレントディレクトリ(Dockerfileがあるフォルダ)を指定
STEP
④-2 作成したDockerイメージの確認

以下コマンドを実行して、Dockerイメージが作成されていることを確認します。

docker images

⑤コンテナの起動

作成したイメージを使ってコンテナを起動します。

docker run -d -p 5000:5000 --name my-container my-flask-app
  • -d :バックグラウンドで実行
  • -p 5000:5000 :ホストの5000番ポートをコンテナの5000番ポートにマッピング
  • --name my-container :コンテナ名を my-container に設定

⑥アプリの動作確認

ブラウザで http://localhost:5000 にアクセスし、Hello, Docker! と表示されることを確認します。

【補足】コンテナの管理

■コンテナのログを確認

docker logs my-container

■コンテナの停止

docker stop my-container

■コンテナの削除

docker rm my-container

■イメージの削除

docker rmi my-flask-app
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次