やったこと
docker を使ってみます。
チュートリアルの Part2 です。
調査
Dockerfile の定義
コンテナで何をするのかということを定義します。
Dockerfile
# 公式 Python ランタイムを親イメージとして使用
FROM python:2.7-slim
# 作業ディレクトリを /app に設定
WORKDIR /app
# 現在のディレクトリの内容を、コンテナ内の /app にコピー
ADD . /app
# requirements.txt で指定された必要なパッケージを全てインストール
RUN pip install -r requirements.txt
# ポート 80 番をコンテナの外の世界でも利用可能に
EXPOSE 80
# 環境変数の定義
ENV NAME World
# コンテナ起動時に app.py を実行
CMD ["python", "app.py"]※ 下記ファイルも必要ですが、参考サイトを見てください。
app.pyrequirements.txt
Docker イメージを作成
$ docker build -t friendlyhello .アプリケーションを起動する
$ docker run -p 4000:80 friendlyhello$ curl http://localhost:4000確認
実行中のコンテナID 2a2ef4f0bd30 の確認
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a2ef4f0bd30 friendlyhello "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:4000->80/tcp confident_tuDocker Hub のイメージを利用する
Docker Hub のイメージを使い nginx を起動します。
$ docker pull nginx:latestDockerfile
FROM nginx:latest
# author
MAINTAINER hoge
ADD default.conf /etc/nginx/conf.d
RUN echo "now building..."docker-compose.yml
version: '3'
services:
nginx:
build: .
ports:
- "8080:80"
volumes:
- ./public:/usr/share/nginx/html設定ファイルを空で用意します
$ touch default.confコンテナ起動
$ docker-compose upコンテナに入る
nginx_nginx_1 はコンテナ名です。
$ docker exec -i -t nginx_nginx_1 bash設定ファイルは default.conf と同じで空でした。
# cat /etc/nginx/conf.d/default.conf