docker学习(9)—docker-compose初探

先来看下docker-compose和命令方式的区别
在docker下运行一个redis,redis.conf文件和持久化目录保存在宿主机

一、使用命令方式部署
1、建立/home/redis/conf目录
mkdir -p /home/redis/conf
2、下载配置文件
cd /home/redis/conf
wget https://raw.githubusercontent.com/redis/redis/6.0/redis.conf

3、修改默认配置文件
#bind 127.0.0.1
protected-mode no
dir /data
appendonly yes
daemonize no #改为yes会使配置文件方式启动redis失败
pidfile /data/redis_6379.pid

4、建立/home/redis/data目录
mkdir -p /home/redis/data
5、执行部署命令
docker pull redis
docker run -itd -p 6379:6379 -v /home/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data --name myredis redis redis-server /etc/redis/redis.conf

二、使用docker-compose文件方式部署
1、建立目录
mkdir /home/myredis
2、建立文件

vi myredis.yml
version: "3.9"  # optional since v1.27.0
services:
  redis:
    image: redis
    container_name: myredis2
    ports:
      - 6379:6379
    volumes:
      - /home/redis/conf/redis.conf:/etc/redis/redis.conf
      - /home/redis/data:/data
    command: redis-server /etc/redis/redis.conf

3、执行部署命令
cd /home/myredis
docker-compose -f myredis.yml up

显示:
Creating myredis2 … done
Attaching to myredis2
myredis2 | 1:C 21 Jan 2021 09:14:28.547 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
myredis2 | 1:C 21 Jan 2021 09:14:28.547 # Redis version=6.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
myredis2 | 1:C 21 Jan 2021 09:14:28.547 # Configuration loaded

三、小结
1、使用命令方式,命令没有记录,如果服务挂了,还要用命令重启
2、使用docker-compose方式实现同样的功能,由于有配置文件,管理起来更方便

参考资料:
https://redis.io/topics/config/
https://hub.docker.com/_/redis
https://www.cnblogs.com/xpengp/p/12713374.html