文章目录
- Docker Compose
- 安装
- 体验
- yaml 规则
- 开源项目
- Docker Swarm
Docker Compose
介绍:
使用 Docker Compose 来高效管理容器,定义启动多个容器
批量容器编排
Compose 是 Docker 官方的开源项目。需要安装
Dockerfile 让程序在任何地方运行。
Compose.yml
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
概念
- 服务services,容器,应用。(web,redis,mysql…)
- 项目 project,一组关联的容器。
安装
1、下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、授权
sudo chmod +x /usr/local/bin/docker-compose
体验
参考官方步骤 https://docs.docker.com/compose/gettingstarted/
1、 应用 app.py
2、Dockerfile 应用打包为镜像
3、Docker-compose yaml 文件 (定义整个服务,需要的环境,web、redis)
4、启动 compose 项目 ($ docker-compose up)
流程:
1.创建网络
2.执行 Docker-compose yaml
3.启动服务
app.py 后面加上这个
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
Dockerfile
FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker-compose.yml
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
docker-compose build
docker-compose up
[root@localhost composetest]# docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
默认服务名 文件名_服务名_num
多个服务器,集群,A B _num 副本数量 服务redis 服务 => 4个副本
集群状态。服务不可能只有一个运行实例。
3、网络规则
项目的内容在同一个网络下,可以用域名访问
docker network inspect composetest_default
HA
停止:docker-compose down 或者 Ctrl+c
好处:
通过docker-compose 编写 yaml 配置文件,可以通过 compose 一键启动、停止 所有的服务
Docker 小结
1、Docker 镜像。run => 容器
2、DockerFile 构建镜像(服务打包)
3、docker-compose 启动项目(编排、多个微服务/环境)
4、Docker 网络
yaml 规则
参考连接https://docs.docker.com/compose/compose-file/compose-file-v3/
# 3层
version: '' # 版本
service: # 服务
服务1: web
# 服务配置
images
build
network
...
服务2: redis
...
服务3: redis
# 其他配置 网络 全局..
volumes:
network:
configs:
开源项目
wordpress 参考连接:https://docs.docker.com/samples/wordpress/
1、下载项目(docker-compose.yaml)
2、如果需要文件(Dockerfile)
3、文件准备,一键启动项目
后台启动
[root@localhost composetest]# docker-compose up -d
Starting composetest_web_1 ... done
Starting composetest_redis_1 ... done
# 启动不成功 可重写构建
docker-compose up --build
关闭和清理
docker-compose down
docker-compose down --volumes
Docker Swarm