1.Docker-Compose的简介:
Docker-Compose 是用来管理容器的,类似用户容器管家,我们有N多台容器或者应用需要启动的时候,如果手动去操作,是非常耗费时间的,如果有了 Docker-Compose 只需要一个配置文件就可以帮我们搞定,但是 Docker-Compose 只能管理当前主机上的 Docker,不能去管理其他服务器上的服务。意思就是单机环境。docker-compose是基于docker的编排工具,使容器的操作能够批量的,可视的执行,是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 dockerd的单机编排工具 docker-compose。
2.什么是Docker-Compose
docker-compose是基于docker的开源项目,托管于github上,由python实现,调用 docker服务的API负责实现对docker容器集群的快速编排,即通过一个单独的yaml文件,来定义一组相关的容器来为一个项目服务。
所以,docker-compose默认的管理对象是项目,通过子命令的方式对项目中的一组容器进行生命周期的管理。
3.安装docker-compose
docker-compose通常是寄托在给girhub上的,GitHub是国外的网站,想要从上上面去下载资源的话是非常的缓慢的,所以以下的话安装的国内的镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#查看版本:docker-compose version
#授权:chmod +x /usr/local/bin/docker-compose
4.构建
4.1.先创建一个目录
mkdir composetest
4.2.进入带这个目录下
cd composetest
4.3.接下来创建一个文件
vim app.py
4.4.输入一下内容
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
4.5.再创建一个文件
vim requirements.txt
输入
flask
redis
4.6.再创建一个docker file(这里没有使用官方的Dockerfile文件,官方的Dockerfile要远程下载文件,过程比较缓慢)
vim Dockerfile
输入
# syntax=docker/dockerfile:1
FROM python:3.6-alpine
ADD ./code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
4.7.再创建一个yml文件,vim docker-compose.yml
输入:
version: "3.3"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
5.使用compose构建并且运行自己的应用程序
docker-compose up