Docker-compose综合训练
一. 实验目的:
- 熟悉Docker-compose的基本工作原理;
- 熟悉Docker-compose安装
- 熟悉Docker compose命令基础
- 熟悉Docker compose配置文件
二. 实验环境:
Ubuntu16.04+Docker
三. 实验内容:
- 练习使用docker-compose操作的常用命令;
四、 实验练习:
- 创建一个Python应用, 使用Flask,将数值记入Redis
建立一个应用的目录,创建Python
# mkdir python
# cd python
# vi app.py
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)
# vi requirements.txt
flask
Redis
创建 Dockerfile
在同一目录下,创建Dockerfile
对上面的Dockerfile做一下简单说明:
- 容器使用Python 2.7的镜像
- 将当前目录下文件拷贝到容器内/code
- 指定工作目录为/code
- 安装python需要的库:flask, redis
- 容器执行命令 python app.py
创建编排脚本
在同一目录下,创建 docker-compose.yml
# cat docker-compose.yml
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
对上面的编排脚本做一下简单说明:
这个应用定义了两个服务:web, redis
web容器通过当前路径下的Dockerfile生成
web容器内的5000端口映射到主机的5000端口
将当前目录挂载到web容器内/code
web容器依赖于redis容器
redis容器从Docker Hub获取镜像
启动应用
会执行编排脚本,分别制作和抓取web,redis镜像,启动容器
# docker-compose up
访问应用
- 创建一个Wordpress应用
建立一个应用的目录
# mkdir wordpress
# cd wordpress
创建 并编译docker-compose.yml
启动应用
# docker-compose up -d
确认
# docker-compose ps
访问应用