LoginSignup
4

More than 5 years have passed since last update.

Docker Composeのインストール (Getting Startedの手順)

Last updated at Posted at 2017-12-10

docker-composeをインストールして動かしてみる。

手順は公式サイトのインストール手順とGetting Startedに従う。
https://docs.docker.com/compose/install/
https://docs.docker.com/compose/gettingstarted/

環境

"Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"

インストール

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version 1.17.1, build 6d101fb

docker-composeのバージョンは、下記からLatest Releaseのものを使用する。
https://github.com/docker/compose/tags

docker-composeを動かす

流れとしては、

  1. コンテナ内で動くpythonアプリを作成する (app.py)
  2. Docker build時に必要なpythonモジュールを列挙したファイルを作成しておく (requirements.txt)
  3. Flaskアプリをコンテナ内に読み込んで実行するDockerfileを作成する
    1. pythonイメージをベースにする
    2. build時Dockerfileと同一ディレクトリを /code として追加する
    3. ワークディレクトリを /codeにする
    4. ビルド時に取り込んだrequirements.txtに列挙されたモジュールをpip installする
    5. ビルド時に取り込んだapp.pyを実行する
  4. docker-compose.ymlを作成する
    1. webとredisのサービスを作成する
    2. webサービスはDockerfileのビルドをポートマッピングを5000:5000として行う
    3. redisサービスは、redisのイメージを使用する
  5. docker-composeを実行する

セットアップを行う

プロジェクトディレクトリを作成する

$ mkdir composetest
$ cd composetest/

docker起動後に動かすアプリを作成する

app.pyをプロジェクトディレクトリのルートに作成する

from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    count = redis.incr('hits')
    return 'Hello World! I have been seen {} times.\n'.format(count)

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)

requirements.txt を作成する

Dockerfileのビルド時にpip installするモジュールを列挙しておく

flask
redis

Dockerfileの作成

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

docker-compose.ymlを作成する

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
  redis:
    image: "redis:alpine"

Composeを使って、ビルドしてアプリを動かす

$ docker-compose up

ホストから接続確認

$ curl http://localhost:5000/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4