Linux上使用docker启动redis并远程访问的实现
作者:IT__learning
一、centos7 上安装 docker
1、安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
2、安装 docker 的 yum 源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo # 中央仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里仓库
3、安装 docker
yum install docker-ce # 由于 repo 中默认只开启 stable 仓库,故这里安装的是最新稳定版
可以查看所有仓库中所有 docker 版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-20.10.9.ce
4、开启 docker 服务
systemctl start docker # 启动 Docker systemctl enable docker # 开机自启
5、 验证 docker
docker version
有 client 和 service 两部分表示 docker 安装启动都成功了
二、docker 安装 redis 并启动
1、docker 拉取 redis 镜像
docker pull redis
2、查看本地镜像
docker images
3、挂载配置文件
docker 安装的 redis 默认只能够本地连接,不能进行远程访问,因此需要手动挂载外部 redis 配置文件。
(1)在 Linux 任意目录下创建存放 redis 配置文件和数据的目录结构:/docker/redis/conf,/docker/redis/data。
(2)将配置文件 redis.conf 从官网下载下来放到配置文件目录 /docker/redis/conf 下。
(3)修改以下配置:
- 1)bind 127.0.0.1 :注释掉这部分,这是限制 redis 只能本地访问
- 2)protected-mode no :默认是yes,开启保护模式,限制为本地访问
- 3)requirepass 123456 :配置 redis 连接密码,默认是注释的
- 4)dir ./ :更改本地redis数据库存放文件夹(可选)
- 5)appendonly yes :redis 持久化,开启了这个 redis 就不会每次重启时自动清空了
4、创建容器并启动 redis 服务端
docker run -itd -p 6379:6379 --name lhjredis -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data redis redis-server /etc/redis/redis.conf
1)–name:给容器起一个名字;
2)-p:端口映射(宿主机端口:容器端口);
3)-v:挂载自定义配置(自定义配置:容器内部配置);
本命令共有两个挂载:Linux 上自定义的 redis 配置(/docker/redis/conf/redis.conf)挂载到容器内 redis 应用的默认配置文件 /etc/redis/redis.conf;Linux 上自定义的数据存放目录(/docker/redis/data)挂载到容器内 redis 应用的默认数据存放目录(/data)。
这样 docker 容器内的 redis 应用会使用 Linux 上自定义的配置文件,docker 容器内的 redis 应用的数据会放到 Linux 上自定义的数据存放目录。
4)-d:后台运行;
5)redis-server --appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;
5、启动成功,查看状态
docker ps
6、进入到启动的容器
docker exec -it myredis /bin/bash
执行 docker exec -it 容器名 /bin/bash 命令可以进入到启动的容器中;
exit 指令可以退出容器
7、在容器中使用 redis 客户端
redis-cli
进入容器后,使用以上命令启动 Redis 客户端,将连接到您的本地 Redis 服务器。
如果是连接其他服务器的 redis,则需要加参数(主机地址、端口号、密码)
redis-cli -h xx.xxx.xx.xxx -p 6379 -a xxx
8、使用 Redis Desktop Manager 客户端进行连接
注意
- 当启动容器端口报错时,可以通过netstat -lntp | grep 6379查看哪个程序在占用
- 可以通过 sudo kill 6379 杀掉占用端口的程序
- 如果使用阿里云等,请务必把相应端口打开
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。