先来看下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