容器管理工具Docker(十一):Docker容器服务编排利器 Docker Compose
一、使用Docker Compose必要性及定义
用容器运行一个服务,需要使用docker run命令。但如果我要运行多个服务呢?
假设我要运行一个web服务,还要运行一个db服务,那么是用一个容器运行,还是用多个容器运行呢?
一个容器运行多个服务会造成镜像的复杂度提高,docker倾向于一个容器运行一个应用。
那么复杂的架构就会需要很多的容器,并且需要它们之间有关联(容器之间的依赖和连接)就更复杂了。
这个复杂的问题需要解决,这就涉及到了**容器编排**的问题了。
- Compose
- 编排
- 是对多个容器进行启动和管理的方法
- 例如:LNMT,先启动MySQL,再启动Tomcat,最后启动Nginx
- 编排
- 服务架构的演进
- 单体服务架构
- 分布式服务架构
- 微服务架构
- 超微服务架构
- 容器编排工具
- docker machine
- 在虚拟机中部署docker容器引擎的工具
- docker compose
- 是一个用于定义和运行多容器Docker的应用程序工具
- docker swarm
- 是Docker Host主机批量管理及资源调度管理工具
- kubernetes
- google开源的容器编排工具
- docker machine
二、Docker Compose应用参考资料
- 官方网址
- https://docs.docker.com/compose/

- yaml格式
- https://yaml.org/
三、Docker Compose应用最佳实践步骤
3.1 概念
- 工程(project)
- 服务 (Service)
- 容器 (Container)
3.2 步骤
1.定义应用的Dockerfile文件,为了anywhere进行构建。
2.使用docker-compose.yaml定义一套服务,这套服务可以一起在一个隔离环境中运行。
3.使用docker-compose up就可以启动整套服务。
四、Docker Compose安装


下载docker compose
# wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64
移动位置并更名
# mv docker-compose-linux-x86_64 /usr/bin/docker-compose
授予权限
# chmod +x /usr/bin/docker-compose
查看版本是否正常
# docker-compose version
Docker Compose version v2.2.3
五、Docker Compose应用案例
运行Python语言开发的网站
5.1 网站文件准备
# mkdir flaskproject
[root@localhost ~]# cd flaskproject/
[root@localhost flaskproject]#
[root@localhost flaskproject]# vim app.py
[root@localhost flaskproject]# cat app.py
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)
[root@localhost flaskproject]# vim requirements.txt
[root@localhost flaskproject]# cat requirements.txt
flask
redis
5.2 Dockerfile文件准备
[root@localhost flaskproject]# vim Dockerfile
[root@localhost flaskproject]# cat Dockerfile
FROM python:3.7-

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



