Docker高阶教程
1.Docker Compose
简介
作用:批量容器编排
我自己的理解:Compose是官方的开源项目,需要安装!
Dockerfile 让程序在任何地方运行。(web服务、redis、mysql、nginx。。。多个容器)
docker-compose up 100个服务。
Compose:重要的概念。
安装
(1)下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
这个地址可能快点(国内):
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
(2)授权
sudo chmod +x /usr/local/bin/docker-compose
(3)体验
https://docs.docker.com/compose/gettingstarted/
步骤:1)Create a directory for the project:
$ mkdir composetest
$ cd composetest
2)在项目目录中创建一个名为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)
if__name__== "_main_":
app.run(host="0.0.0.0",debug=True)
3)在项目目录中创建另一个名为requirements.txt的文件,内容
flask
redis
4)在项目目录中创建名为Dockerfile
的文件
FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
#这告诉Docker:
# 从python 3.6映射开始构建映射
# 将当前目录添加.到/code映射中的路径。
# 将工作目录设置为 /code
# 安装python依赖项
# 将容器的默认命令设置为 python app.py
5)在项目目录中创建一个名为 docker-compose.yml 的文件:
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
compose.yml规则
#3层
version:'' #版本 (参照 :https://docs.docker.com/compose/compose-file/)
services: #服务
服务1:web
images
build
network
服务2:redis
服务3:redis
.......
#其他配置 网络、卷 、 全局规则
volumes:
networks:
configs:
启动项目:docker-compose up
2.Docker Swarm
集群方式部署,4台阿里云服务器
3.Docker Stack
4.Docker secret
5.Docker Config