简介
说明
本文介绍如何使用Docker安装Redis。
注意事项
- Docker安装Redis是有坑的:默认不会生成redis.conf配置文件,必须通过映射外部配置文件的方式才能生成配置文件。
- 必须将重要数据放到宿主机,防止docker挂了后数据丢失。
- 比如:配置文件、数据、日志
下载
下载
docker pull redis
或者下边这样(不输入latest默认为latest)
docker pull redis:latest
查看是否下载成功
docker images
配置
外机找个目录创建配置文件,比如:/work/docker/redis/config/redis.conf
外机找个目录创建日志文件,比如:/work/docker/redis/log/redis.log
注意:需要给日志文件加写权限:
sudo chmod +w redis.log
redis.conf
#bind 127.0.0.1 # 只能本地访问 # 默认yes表示开启保护模式,用来限制redis只能本地访问 protected-mode no # 默认no。yes:以守护进程方式启动,在后台运行,yes时无法用配置文件方式启动redis。 daemonize no # 持久化 appendonly yes # 密码 requirepass 222333 # 日志 logfile /log/redis.log
全部配置可从官网下载
启动
法1:指定配置文件启动(推荐)
docker run -p 6379:6379 --name container_redis \ -v /work/docker/redis/config:/etc/redis/config \ -v /work/docker/redis/data:/data \ -v /work/docker/redis/log:/log \ -d redis redis-server /etc/redis/config/redis.conf
- -p 6379:6379
- 端口映射。冒号前表示主机,冒号后表示容器
- -name container_redis
- 指定容器名称,查看和进行操作都比较方便。
- -v /work/docker/redis/config:/etc/redis/config
- 将外机中/work/docker/redis/config挂载到容器的/etc/redis/config文件中
- -v /work/docker/redis/data:/data
- 将外机中/work/docker/redis/data挂载到容器的/data
- 存持久化文件等。比如:dump.rdb
- -v /work/docker/redis/log:/log
- 将外机中/work/docker/redis/log挂载到容器的/log
- 存储日志。
- -d redis
- -d:表示后台启动。后边的redis是镜像名字。
- redis-server /etc/redis/config/redis.conf
- 以配置文件启动redis,加载容器内的conf文件,最终找到的是外机的目录/work/docker/redis/config/redis.conf
法2:默认配置启动(不推荐)
docker run -itd --name container_redis -p 6379:6379 redis
法3:指定配置启动(不推荐)
docker run -p 6379:6379 --name container_redis \ --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 \ -v /work/docker/redis/config:/etc/redis/config \ -v /work/docker/redis/data:/data \ -v /work/docker/redis/log:/log \ -d redis redis-server /etc/redis/config/redis.conf \ --appendonly yes --requirepass "222333"
查看
查看启动状态
查看已经运行的实例
docker ps
查看所有的镜像的实例(包括未运行的 )
docker ps -a
查看日志
查看容器的日志(xxx为容器实例的id或者name。本处可以用3cc96a16754f或者container_redis)
docker logs xxx
停止与启动
以下xxx为容器实例的id或者name,本处可以用3cc96a16754f或者container_redis。
停止实例
docker stop xxx
启动实例
docker start xxx
删除实例
删除实例(在实例未运行时才能运行)
docker rm xxx
强制删除实例(无论是否在运行)
docker rm -f xxx
请先
!