文章目录
二、Docker安装redis
1、查看redis镜像
docker search redis
2、拉取redis镜像(不指定版本,默认拉取最新版本)
docker pull redis
3、修改redis配置文件和持久化目录
通过挂载配置文件的方式启动redis容器
(挂载:将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)
1)、挂载redis的配置文件
2)、挂载redis 的持久化文件目录(为了数据的持久化)
配置文件目录可以根据需要自行配置,我这边的目录为:
mkdir -p /docker/redis/smart-park-redis/conf (配置文件目录)
mkdir -p /docker/redis/smart-park-redis/data (数据持久化目录)
3)、修改配置文件
1. protected-mode no, 保护模式,限制为本地访问,修改后解除保护模式
2. requirepass ^L{2fd9804A! 设置访问密码
4、通过命令启动redis镜像
docker run --restart=always -p 6379:6379 --name smart-park-redis --privileged=true -v /docker/redis/smart-park-redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/smart-park-redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass ^L{2fd9804A!
4.1、 命令详解
1、--restart=always 总是开机启动
2、-p 6379:6379 前面的6379是宿主机端口,后面是容器里面的端口
3、--name 给容器命名
4、-v 数据卷挂载 冒号前是宿主机目录,冒号后是容器目录
/docker/redis/smart-park-redis/conf/redis.conf:/etc/redis/redis.conf
这里是将 liunx 路径下的redis.conf 和redis下的redis.conf 挂载在一起。
/docker/redis/smart-park-redis/data:/data 持久化同上
5、-d redis 表示后台启动redis (开启守护进程,和配置文件里面的daemonize yes相同的作用,不要同时存在,不然会报错,推荐使用-d命令)
redis-server /etc/redis/redis.conf
以配置文件启动redis,加载容器内的conf文件,但是最终找到的是挂载的目录 /etc/redis/redis.conf
也就是宿主机下的/docker/redis/smart-park-redis/conf/redis.conf
6、--appendonly yes 开启redis 持久化
7、--requirepass ^L{2fd9804A! 设置密码为^L{2fd9804A!
8、--privileged=true 给容器加上特定权限,否则会报没有权限错误
启动成功。
5、启动失败怎么办
如果以上命令启动失败,可以先尝试重启一下docker
systemctl restart docker
重启docker后再输入启动命令,如果还是启动失败,具体报错具体分析。
6、状态查询
docker ps -a
7、开启宿主机端口
启动redis容器时,设置了宿主机端口,那宿主机的端口就需要开启的,设置命令如下:
查询宿主机开放端口:
firewall-cmd --list-port
开启宿主机端口:
firewall-cmd --add-port=6379/tcp --permanent
–permanent表示永久开放端口
重启防火墙,刷新端口
systemctl restart firewalld
redis中的6379不能远程访问,可以使用如下命令开启远程访问:
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
8、卸载redis
8.1、停止容器
docker stop smart-park-redis
8.2、删除容器
docker rm smart-park-redis
8.3、删除镜像
删除镜像之前,先查询镜像ID
docker images
找到对应需要删除的容器id
docker rmi 7614ae9453d1