docker-compose
1 下载安装
github下载:
#注意先下载哪个版本只需要替换即可
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#下载后赋予权限
chmod +x /usr/local/bin/docker-compose
国内镜像下载(速度块)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#下载后赋予权限
chmod +x /usr/local/bin/docker-compose
判断是否安装成功
#查看 docker-compose 版本
docker-compose -v
Yaml配置文件
2.常用命令
命令 | 描述 |
---|---|
docker-compose up | 启动compose服务 加 -d表示后台启动 |
docker-compose stop | 停止服务(不删除容器) |
docker-compose rm | 删除compose所有容器 |
docker-compose down | 停止并删除所有容器和网络,但是不会删除卷和镜像 |
docker-compose ps | 列出compose内的所有容器 |
docker-compose restart | 重启所有容器 |
yml配置文件
docker-compose.yml 用于声明容器的创建过程
详情可以看官网或其他资料
案例
用docker-compose 启动一个springboot+redis的服务
1 创建spring-boot工程编写一个接口,然后打包为jar
@RestController
public class HelloController {
@Autowired
private RedisTemplate redisTemplate;
@GetMapping("/hello")
public String hello(){
ValueOperations valueOperations = redisTemplate.opsForValue();
return "该页面已被访问: "+valueOperations.increment("key")+" 次";
}
}
application.properties 配置文件
server.port=8888
#注意这里的host填的是redis不是具体的ip
spring.redis.host=redis
spring.redis.password=123456
2 编写Dockerfile构建springboot启动镜像
FROM java:8
#作者信息
MAINTAINER gudian<1994371810@qq.com>
#设置工作目录
WORKDIR /data
#拷贝 jar和配置文件
COPY ./app.jar /data/app.jar
COPY ./application.properties /data/application.properties
#启动jar指定配置文件
ENTRYPOINT [ "nohup","java","-jar","app.jar","--spring.config.lication=/data/application.properties","&"]
将Dockerfile等相关文件上传到entos内
#我这里是吧所有文件放到/data/web目录下
mdkir -p /data/web
cp app.jar /data/web
cp application.properties /data/web
cp Dockerfile /data/web
3 下载 redis.conf 配置文件并修改相关配置
#我这里放在/data/redis目录下
mdkir -p /data/redis
cd /data/redis
wget https://raw.githubusercontent.com/redis/redis/6.0/redis.conf
修改相关配置
bind 注释掉
protected-mode 改为no
requirepass 修改密码为spirngboot配置文件的值
dir 修改rdb aof 文件存放位置
appendonly yes 开启aof
4 创建 docker-compose.yml
vim /data/docker-compose.yml
version: '3' #指定docker-compose文件版本
services:
web: #web服务相关配置
build:
dockerfile: "Dockerfile" #Dockerfile名称
context: "/data/web" #构建的目录
ports:
- '8888:8888' #映射的端口
depends_on:
- redis #依赖redis
container_name: "gudian_web" #设置容器名称
redis:
image: "redis:6.2.1" #以redis镜像启动
volumes: #挂载目录
- "/data/redis:/data"
ports: #指定端口
- "6379:6379"
container_name: "gudian_redis" #设置容器名称
command: "redis-server /data/redis.conf" #覆盖redis默认的启动命令
5 确保文件都放到centos后启动
/data/web 内有 app.jar application.properties Dockerfile
/data/redis内有 redis.conf
/data目录下有docker-compose.yml
#通过命令启动
docker-compose up
测试访问web页面可以看到正常显示访问次数