docker安装redis并以配置文件方式启动

【第1步】创建docker网络

默认的网络是docker0,这个网络在容器内部只能通过容器的ip访问,不能通过容器名访问,所以凡是我们自己安装的软件及部署的业务项目,全部用自己创建的网络。

创建docker网络,取名mynet,网段为172.19.0.0/16

docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 mynet

注意网段不要用172.17.0.0/16,这个网段被默认的网络docker0使用了。

 

【第2步】下载redis:6.2.6版本的镜像

查看 Redis 镜像库地址:https://hub.docker.com/_/redis?tab=tags

下载redis镜像.

docker pull redis:6.2.6

如果不加版本号(:6.2.6)表示下载最新版本。

从redis官网下载 redis配置文件: http://download.redis.io/redis-stable/redis.conf

下载完成后, 修改redis.conf配置文件

#bind 127.0.0.1             #注释掉这部分,使redis可以外部访问
protected-mode no           #修改为no,去掉保护模式,让外网可以访问
daemonize no                #修改为no,不用守护线程的方式启动
requirepass 123456          #密码
appendonly yes              #redis持久化,默认是no

或者新建一个redis.conf文件,把上面这些配置写进去.

 

在宿主机上新建目录 /mydata/redis/conf ,用于存放redis配置文件及数据.

mkdir -p /mydata/redis/conf

将配置文件 redis.conf 拷贝到 /mydata/redis/conf/    下面.

用配置文件方式启动redis:

docker run -d -p 6379:6379 --name myredis -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data --net mynet redis:6.2.6 redis-server /etc/redis/redis.conf --appendonly yes

如果无权限启动, 可以加 --privileged=true参数:

docker run -d -p 6379:6379 --name myredis -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data --net mynet redis:6.2.6 redis-server /etc/redis/redis.conf --appendonly yes --privileged=true

参数说明:

-p 6379:6379 #把容器内的6379端口映射到宿主机6379端口
-v /mydata/redis//conf/redis.conf:/etc/redis/redis.conf #将到宿主机的文件/mydata/redis/conf/redis.cong 作为redids容器的配置文件/etc/redis/redis.conf
-v /mydata/redis/data:/data #把redis持久化的数据放在宿主机目录/mydata/redis/data中,做数据备份
redis-server /etc/redis/redis.conf#这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes #redis启动后数据持久化

 --privileged=true  #解决容器无权限的问题

 

【第3步】进入 redis 容器测试:

docker exec -it myredis /bin/bash

 登录redis-cli控制台,输入密码验证,设置key,获取key:

redis-cli
auth '123456'
set key1 value1
get key1

 

 

posted @ 2021-12-26 11:55  民工黑猫  阅读(1523)  评论(0编辑  收藏  举报