一、Docker Compose(容器单独是没有什么意义的,有意义的是容器编排)
1)Compose是一个用于定义和运行多容器Docker应用程序的工具。 使用Compose,您可以使用YAML文件配置应用程序的服务。 然后,使用一个命令,从配置中创建并启动所有服务。
三步:
1.Dockerfile保证项目可以在任何地方运行
2.docker-compose.yml
-services服务
-docker-comse.yml怎么写
3.docker-compose up 启动项目
作用:批量容器编排
2)Compose是Docker官方的开源项目,需要安装
Dockerfile让程序在任何地方运行。
Compose实例:
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: {}
service服务:容器/应用(redis、mysql....)
项目project:一组关联的服务。如博客(web、mysql)
3)安装Compose
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.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.授权
sudo chmod +x /usr/local/bin/docker-compose
3.查看版本
docker-compose version,安装成功
官方demo测试:https://docs.docker.com/compose/gettingstarted/
1.创建一个文件夹
cd /home , mkdir composetest
2.创建一个文件app.py拷贝官方的应用
编辑另外一个文件
3.创建Dockerfile文件
4.创建dock-compose.yml文件
5.docker-compose up,提示让docker-compose up --build
docker-compose up --build,再次build并运行
访问成功
使用docker service ls查看
** 默认服务名 文件名_服务名_num
当docker集群时,num为服务的副本编号
** 网络规则
使用docker network ls发现创建了一个网络
项目中的所有服务都在同一个网络下面,可以通过域名访问
如:mysql:3306(10个mysql都是通过域名访问)
查看网络信息 docker network inspect composetest_default
刚才官方的demo中可以看到
6.停止:
ctrl+c
docker-compose down
启动和停止都必须在文件目录下才能使用
**结论:之前是docker run单个启动容器或者停止
编写docker-compose.yml docker-compose up 一键批量启动服务
总结:1.docker镜像 run=》容器
2.Dockerfile构建镜像(服务打包成镜像)
3.docker-compose.yml 启动项目(编排多个微服务/ 环境)
4.docker网络
二、yaml文件编写规则
#总共三层
#第一层 版本 version:(docker引擎和yaml版本向下兼容)
#第二层 服务 service:
#服务配置
images
build
network
#第三层 其他配置 网络/卷/全局配置
networks
volumes
configs
depends_on: 启动顺序 先启动db,redis,再启动web
三、Compose一键部署WP博客
https://docs.docker.com/samples/wordpress/
步骤:
-创建一个文件夹,然后创建一个docker-compose.yml拷贝
docker-compose up 前台启动
docker-compose up -d 后台运行
下载开源项目:
1.下载开源项目(带有docker-compose.yml)
2.如果需要文件-Dockerfile构建镜像(这个博客是去拉的仓库镜像)
3.文件准备好之后一键启动
四、编写自己的项目上线
1.编写springboot项目打成jar包
2.编写dockerfile构建镜像
3.docker-compose.yml 编排项目
3.放到服务器上docker-compose up
总结:工程compose:三层
工程project
服务service
容器运行实例
五、docker Swarm(略)
1.购买多台阿里云服务器安装docker
2.swarm集群搭建
3.Raft一致性协议
4.swarm集群弹性创建服务