Dockerfileでイメージをビルドしてコンテナを立ち上げる方法
 Author: mito.shimada

Dockerfileとは

ビルドしてオリジナルのイメージを作るときの設計書。

CMDより前のコマンドでコンテナを作り、CMDコマンドがコンテナの実行コマンドになる。

以下の例はpipenvで管理していたpythonプロジェクトをコンテナ化したもの。

pipenvの依存を一旦requirements.txtに落としている

FROM python:3.7

RUN mkdir /myapp
WORKDIR /myapp
COPY Pipfile /myapp/Pipfile
COPY Pipfile.lock /myapp/Pipfile.lock
RUN pip install pipenv
RUN pipenv lock -r > requirements.txt
RUN pip install -r requirements.txt
COPY . /myapp

WORKDIR /myapp/admin/backend
EXPOSE 8081
CMD ["./flask-server.sh"]

イメージ作成

docker buildコマンドでイメージを作成する。-tは名前をつけるときのオプション

docker build ./ -t myapi

コンテナ起動

作ったイメージはdocker runでコンテナとして起動する。

docker run myapi
# -d デーモン実行 -p ポートフォワーディング
docker run -d -p 8080:8080 --name myapi myapi
# プロセス一覧
docker ps
# コンテナ終了
docker kill 84c274768278
# コンテナ削除
docker rm 84c274768278
# 消えてるか確認
docker container ls -a