目次
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!