docker-运行redis服务

环境说明

linux系统版本:lsb_release -a

 

 

docker 版本: docker -v

 

 

不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。

 

查看dockermysql的版本,可以去官网,需要kx上网才能打开。

https://hub.docker.com/

 

 

最好是确认自己的服务器已经设置阿里云的镜像加速,或者使用腾讯的,网易的都是可以的。

自己选,设置之后下载镜像的速度回快很多。

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://registry-vpc.cn-hangzhou.aliyuncs.com"]

}

EOF

 

查看自己本地redis的版本号,为5.0.9

 

 

.1.拉取Redis镜像,尝试拉取指定版本的镜像。

 

 

可以正确拉取,如果有的版本拉取不到,说明官网可能没有这个版本,就需要换一个版本。

查看拉取的镜像 docker images

 

 

.2.运行redis服务。

docker run --name redis -p 6379:6379  -d 987b553c835f --requirepass "123456" --appendonly yes

参数解释:

docker run 表示运行redis容器

--name my-redis 表示给这个容器起一个名字

-p 6379:6379 表示将宿主机上3306端口映射到redis容器中的3306端口

-d 987b553c835f  表示在后台运行redis容器,987b553c835f表示镜像IMAGE ID

--requirepass "123456表示设置redis的密码

--appendonly yes 表示数据持久化

注意事项: 命令的顺序不能乱,-d 需要在  --requirepass 命令之前,否则执行会失败!

 

 

使用docker ps -a 查看所有的容器服务,如下

 

 

.3.登录阿里云服务器,打开远程端口6379;

控制台-->我的资源-->点击(实例)进入-->安全组-->安全组详情-->手动添加(入站规则)

 

 

真实项目中,建议不要使用默认端口,以防止被攻击。

 

.4.远程连接测试。

windows上连接redis的工具,使用的事RedisDesktopManager,

也可以根据自己的喜好去选择适合的工具。

 

 

测试连接成功。尝试着添加一条数据,发现可以正常添加。

 

 

.5.删除容器服务,重新启动服务。

因为测试需要,自己在这里重新拉取了redis6.0.8的版本。

 

 

.a.创建redis目录,redis数据保存目录;

 

 

下载redis配置文件。

从官网下载:http://download.redis.io/redis-stable/redis.conf

参考网友给的建议,创建配置文件,添加如下配置

 

#默认yes,开启保护模式,限制为本地访问

protected-mode no

# 绑定的主机地址,默认为 127.0.0.1,表示只允许本地访问

# bind 127.0.0.1

# 端口号,默认 6379

#port 6379

# Redis 数据库的数量,默认为 16

databases 10

# 日志级别,默认为 notice

loglevel notice

# 是否开启 AOF 持久化,默认关闭

aof-enabled no

requirepass root

 

 

.b.删除原有redis容器。

docker stop redis && docker rm redis

 

.c.重新创建新的容器

docker run --name redis \

-p 6379:6379  \

-v /opt/u01/exam/redis/redis.conf:/usr/local/etc/redis/redis.conf   \

-v /opt/u01/exam/redis/data:/data  \

-d 16ecd2772934   \

 

参数解释:

-v /opt/u01/exam/redis/redis.conf:/etc/redis/redis.conf 将宿主机上的配置文件挂载到redis容器中

-v /opt/u01/exam/redis/data:/data 将宿主机上的数据保存的目录,挂载到redis容器中

 

.6.远程连接测试,创建数,查看挂载路径和配置文件是否生效。

连接没问题,添加一条数据,然后查看文件大小是否有变动。

 

 

 

创建数据之前执行一次,创建数据之后查看文件内容有变动,说明数据目录挂载成功。

 

 

遇到的问题:配置的密码不生效。

根据网友的建议,使用如下命令重新创建容器,

docker run --name redis \

-p 6379:6379  \

-v /opt/u01/exam/redis/redis.conf:/usr/local/etc/redis/redis.conf  \

-v /opt/u01/exam/redis/data:/data  \

-d redis:6.0.8 redis-server /usr/local/etc/redis/redis.conf --appendonly yes 

 appendonly yes  表示设置数据持久化

结果报错,查看错误信息如下,大致地错误信息是配置文件错误。

 

配置错误,修改为

 

修改后重启容器,可正常远程连接。

 

 

参考博文

https://www.cnblogs.com/yufeng218/p/16240875.html

https://www.jianshu.com/p/9e4dd25b5e53

https://cloud.tencent.com/developer/article/2133215

https://www.cnblogs.com/qianmo123/p/17661084.html

https://cloud.tencent.com/developer/article/2166291

posted @ 2024-03-26 11:09  一只爱阅读的程序员  阅读(57)  评论(0编辑  收藏  举报