我尝试使用Docker Compose入门
这是关于尝试使用Docker Compose来轻松管理多个容器的笔记。
环境
苹果操作系统
准备之前的工作
安装
# Homebrew Cask をインストールする
$ brew install caskroom/cask/brew-cask
# VirtualBox をインストールする
$ brew cask install virtualbox
# Docker, Docker Machine, Docker Compose をインストールする
$ brew install docker docker-machine docker-compose
创建Docker主机
创建
$ docker-machine create -d virtualbox default
确认 (què
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v1.11.2
确认环境变量
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/a12499/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)
设置环境变量
$ eval $(docker-machine env default)
安装/设置
创建项目目录
$ mkdir composetest
$ cd composetest
创建测试程序
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
创建一个定义测试应用程序依赖关系的文件
flask
redis
制作Docker镜像
创建Dockerfile
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD python app.py
构建
$ docker build -t web .
服务定义
编写docker-compose.yml文件
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
使用Build & Compose启动测试应用
$ docker-compose up
確定
获取IP地址
$ docker-machine ip default
192.168.99.100
请使用浏览器访问以下网址: http://192.168.99.100:5000/
我成功地显示了一个页面,用于显示访问次数而没有任何问题。