在实际业务使用中,我们通常需要对大量的容器进行管理和编排,即实现容器集群的蓝图,今天我们就一起来了解 Docker
官方的编排工具之 docker-compose
。
安装
docker-compose
是一个二进制文件
apt-get install docker-compose 复制代码
安装完后查看版本信息
root@phyger-xubuntu:/home/phyger/docker-cps# docker-compose version docker-compose version 1.17.1, build unknown docker-py version: 2.5.1 CPython version: 2.7.17 OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 root@phyger-xubuntu:/home/phyger/docker-cps# 复制代码
准备工作
准备一个安装了 python3
的镜像,当然你也可以在 Dockerfile
中实现
网络异常,图片无法展示
|
创建工作目录,即 docker-compose
的项目
mkdir /home/phyger/docker-cps 复制代码
在工作目录下创建一个 app
#!/usr/bin/python3 from flask import Flask app = Flask(__name__) count = 0 @app.route('/') def hello(): global count count += 1 return 'Hello World! 该页面已被访问 {} 次。\n'.format(count) if __name__ == "__main__": app.run(host="0.0.0.0", debug=True) 复制代码
在工作目录下创建 Dockerfile
FROM alpine_py:v1 ADD . /code WORKDIR /code ENTRYPOINT ["python", "app.py"] 复制代码
在工作目录下创建 docker-compose.yml
version: '3' services: web: build: . ports: - "5000:5000" 复制代码
启动这个项目
docker-compose up <-d> 复制代码
网络异常,图片无法展示
|
测试服务
网络异常,图片无法展示
|
docker-compose 项目启动分析
docker-compose
调用 Dockerfile
进行项目所需镜像构建,然后使用 docker-compose
编排文件对项目进行编排和管理。即镜像构建使用 Dockerfile
功能,自己只专注业务容器编排。
docker-compose 和 k8s
docker-compose
是对多个容器进行编排和管理的工具,而 k8s
是可以实现跨服务,跨机器对多个容器进行编排,同时其拥有多种控制器类型,可以实现更可靠的容器服务。
它们两种都是常用的服务承载方式,我们可以根据实际需求进选择,通常小型单机服务我们选择简单省资源的 docker-compose
,大型分布式我们选择 k8s
。