Docker Hubなどのレジストリに置いてあります。イメージを自分のローカルマシンにpullすることによって、イメージを共有することができます。
pythonのイメージはこちらにある。
イメージにはタグがある。今回はpython
イメージの3.8.3
を使用する。
公開されているDockerイメージから新しくイメージを作成できる。
今回用意したDockerfile
の内容
FROM python:3.8.3 # このイメージを元に新たなイメージを作成する
WORKDIR /flask_app # このディレクトリで作業するという命令
COPY requirements.txt requirements.txt # ローカルにあるファイルを/flask_app配下にコピー
RUN pip install -r requirements.txt # コマンド実行
アプリケーションの実行環境です。イメージをもとにコンテナを起動します。
コンテナを一括で構築、連携、管理することができる。docker-compose.ymlを共有することで同じ開発環境を共有することができる。
Dockerfile
を用意するか、Docker Hub
などに置いてあるイメージを使用する。今回は、Dockerfileを使用します。docker-compose.yml
を定義するdocker-compose up
を実行する
今回用意したdocker-compose.yml
の内容
version: '3.8'
services:
flask: # コンテナのサービス名。任意のもので構わない
build: . # 同じディレクトリにあるDockerfileで作成されるイメージを使用してコンテナを起動する
volumes:
- type: bind # bindマウント。ホスト側(source)とコンテナ側(target)でディレクトリを共有する
source: .
target: /flask_app
ports: # ホスト:コンテナのポート番号で、ポートを公開
- "5000:5000"
tty: true # コンテナ起動したままにする
docker-compose up
を実行してコンテナが立ち上がったら、コンテナの中に入る(vscodeを使用すると楽)。- コンテナ内で、flask_appディレクトリに移動。
python hello.py
を実行して、flaskを起動。- http://localhost:5000 にブラウザからアクセス
- Hello World! と表示されればOK