tech.chakapoko.com
Home / Python / 開発環境

[Python][Docker]Dockerを使ってPythonを実行する

Python インタプリタの起動

$ docker run -it --rm python:3.8.5 python3 -V
Python 3.8.5

Python スクリプトの実行

簡単な Python スクリプト(hello.py)を Docker で実行する例です。

hello.py

print('Hello')

実行

$ docker run -it --rm -v $(pwd):/usr/src/app -w /usr/src/app python:3.8.5 python3 hello.py
Hello

Python プロジェクトを実行する

他のライブラリに依存している Python プロジェクトの場合 Dockerfile を作成します。

Dockerfile の中では requirements.txt を使ってライブラリをインストールしたのちに Python のプログラムを実行します。

次の例は Docker で Flask アプリを起動する例です。

requirements.txt

Flask

main.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    print('Hello')
    return "Hello, World!"

Dockerfile

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

ENV FLASK_APP main.py

CMD [ "python", "-m", "flask", "run", "--host", "0.0.0.0" ]

実行

$ docker build -t my-flask-app .
$ docker run -it --rm --name my-running-flask-app -p 5000:5000 my-flask-app
 * Serving Flask app "main.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

動作確認

Hello, World!