Docker-compose实验
Docker-compose综合训练
一. 实验目的:
- 熟悉Docker-compose的基本工作原理;
- 熟悉Docker-compose安装
- 熟悉Docker compose命令基础
- 熟悉Docker compose配置文件
二. 实验环境:
Ubuntu16.04+Docker
三. 实验内容:
- 练习使用docker-compose;
四.实验练习:
采用二进制安装Compose
(1)先在github的release页面下载
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
(2)赋予权限
sudo chmod +x /usr/local/bin/docker-compose
(3)查看docker-compose的版本号:
docker-compose version
五、
(一)创建一个Python应用, 使用Flask,将数值记入Redis
1、建立一个应用的目录,创建Python文件
# mkdir python
# cd python
# vim 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)
# vim requirements.txt
flask
redis
2、创建 Dockerfile
在同一目录下,创建Dockerfile
对上面的Dockerfile做一下简单说明:
- 容器使用Python 2.7的镜像
- 将当前目录下文件拷贝到容器内/code
- 指定工作目录为/code
- 安装python需要的库:flask, redis
- 容器执行命令 python app.py
3、创建编排脚本
在同一目录下,创建 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获取镜像
之后发现未正确对齐,出现错误
4、 启动应用
会执行编排脚本,分别制作和抓取web,redis镜像,启动容器
# docker-compose up
5、访问应用
打开另一个终端访问,不要Ctrl+C 停止服务,访问http://localhost:5000/
(二)创建一个Wordpress应用
1、 建立一个应用的目录
# mkdir wordpress
# cd wordpress
2、创建 docker-compose.yml
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
3、启动应用
# docker-compose up -d
4、确认
# docker-compose ps
5、访问应用
这里注意:有的人的图形界面浏览器不能访问,原因是没有安装nginx服务,可以在浏览器里面搜索试试看看有没有安装nginx服务。