一、最简单的方法
如果只是希望docker启动redis,不想去繁琐的配置,建议使用以下run命令:
docker run --name redis --restart=always -d -p 6379:6379 redis:7.2 --requirepass 12345600
这个命令会启动最新版redis
二、常规方法
- 下载redis镜像
先到dockerhub官网搜索redis镜像版本,通过docker desktop 查看所有可用的redis镜像版本, 找到其界面提示的pull命令
不指明redis镜像版本时,docker pull redis默认下载最新版本镜像,如下:
为了后面更好的解释docker的run命令,我选择一个不是最新版本的redis来做演示docker pull redis:7.0.4
使用docker images命令查看当前所有的docker镜像
- 下一步就是使用run命令创建并启动镜像,但在启动镜像之前,我们需要去官网下载redis的配置文件redis.conf文件。注意不同版本的redis配置文件内容不一样,要下载对应版本的redis配置文件
自行创建一个redis.conf文件,将官网的redis.conf内容复制进去即可,然后修改一下配置文件内容- 将appendonly持久化设置为yes
- 将bind注释掉,否则只能本机访问redis (注意这里说的本地是docker容器内部)
- 设置requirepass密码
如此一来,redis.conf就设置好了,此时在Linux上创建一个redis文件夹去存放redis的配置文件和持久化数据。
- 初始化目录
mkdir -p /docker/redis mkdir /docker/redis/data
把redis.conf放在/docker/redis目录下
使用run命令创建并启动redis容器
docker run --name redis \
-p 6379:6379 \
-v /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \
-v /docker/redis/data:/data \
--restart always \
-d redis:7.2 \
redis-server /usr/local/etc/redis/redis.conf
run命令解释:
docker run \
-p 6379:6379 \ docker与宿主机的端口映射
--name redis \ redis容器的名字
-v /docker/redis/redis.conf:/etc/redis/redis.conf \ 挂载redis.conf文件
-v /docker/redis/data:/data \ 挂在redis的持久化数据
--restart=always \ 设置redis容器随docker启动而自启动
-d \后台运行并返回容器id
redis:7.0.4 \
redis-server /etc/redis/redis.conf \ 指定redis在docker中的配置文件路径,后台启动redis
使用docker-compose 命令启动
version: '3'
services:
redis:
image: redis:7.2
container_name: redis
ports:
- 6379:6379
volumes:
- /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
- /docker/redis/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
restart: always
如果是在项目中的某个目录下,例如src/docker这个目录下,创建的文件夹,那么在yml文件中是可以根据docker-compose.yml文件做路径指定选择
volumes:
- "./redis/redis_6.2.conf:/usr/local/etc/redis/redis.conf"
- "./data:/data"
# ./ 就是当前docker-compose.yml文件的平级路径
# ../ 表示的就是docker-compose.yml所在目录的上一级