前言
Docker-Compose可以实现对Docker容器集群的快速编排,在需要多个容器相互配合的情景,Docker-Compose就可以通过docker-compose.yml模板文件来定义一组相关联的容器为一个项目,多个容器来共同完成某项任务。
一、安装
下载Docker-Compose
curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加权限
chmod +x /usr/local/bin/docker-compose
查看版本
docker-compose --version
docker-compose version 1.27.3, build 4092ae5d
二、单个容器
1、准备镜像,这里使用上一篇文章中的pringboot项目做出来的镜像 app:1.0.3
2、编写docker-compose.yml
version: '3'
services:
app1:
image: app:1.0.3
container_name: app-test
restart: always
ports:
- 8080:7601
3、常用命令
检查yml文件
docker-compose config
启动容器
docker-compose up
启动已经存在的容器
docker-compose start
停止容器
docker-compose stop,还能通过docker-compose start再次运行
停止和删除容器
docker-compose down
查看运行容器
docker-compose ps
查看日志
docker-compose logs
4、启动容器
docker-compose up
-d 后台运行
三、多个容器
通过redis进行测试,先启动redis,再启动项目连接redis
1、springboot想入引入redis依赖
2、配置文件中配置redis连接
application.properties
spring.cache.type=redis
spring.cache.redis.time-to-live=2000000
#先配置成127.0.0.1,会通过环境变量进行替换
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.timeout=1000000
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-wait=-1
3、编写docker-compose.yml
version: '3'
services:
app1:
image: app:1.0.3
container_name: app-test
environment:
spring.redis.host: redis-test
restart: always
ports:
- 8080:17901
depends_on:
- redis-test
redis-test:
image: redis
包含两个服务,app1和redis-test
其中app1:
image表示使用的镜像是app:1.0.3;
environment表示设置环境变量spring.redis.host: redis-test,来替换application.properties中的spring.redis.host=127.0.0.1;
depends_on表示依赖另外的服务redis-test,redis-test会先启动。
4、启动容器
通过docker-compose up启动容器,会发现先启动redis,再启动后台服务,接下来就可以在项目中对redis进行操作了。