p2p金融网站建设,做网站谁家做的好,包头市住房和城乡建设局官方网站,php网站建设培训班Docker 搭建 Redis 数据库 前言一、准备工作二、创建 Redis 容器的目录结构三、启动 Redis 容器1. 通过 redis.conf 配置文件设置密码2. 通过 Docker 命令中的 requirepass 参数设置密码 四、Host 网络模式与 Port 映射模式五、检查 Redis 容器状态六、访问 Redis 服务总结 前言… Docker 搭建 Redis 数据库 前言一、准备工作二、创建 Redis 容器的目录结构三、启动 Redis 容器1. 通过 redis.conf 配置文件设置密码2. 通过 Docker 命令中的 requirepass 参数设置密码 四、Host 网络模式与 Port 映射模式五、检查 Redis 容器状态六、访问 Redis 服务总结 前言
Redis 是一个开源的高性能键值对存储系统广泛用于缓存、消息队列等场景。通过 Docker 部署 Redis能够让你轻松快速地运行 Redis 服务同时灵活地进行配置和管理。
本篇文章将指导你通过 Docker 部署 Redis 容器并讲解如何挂载配置文件来设置密码、监听端口及其他自定义设置。 一、准备工作
首先确保你的系统上已经安装了 Docker。
Linux上进行Docker安装有两种方式
Docker自动化安装Docker手动安装 可以根据该文章的步骤进行安装https://blog.csdn.net/weixin_44876263/article/details/136714078?spm1001.2014.3001.5502 二、创建 Redis 容器的目录结构
为了更好地管理 Redis 的数据和配置文件我们首先创建一些本地目录用于存放 Redis 的配置文件和数据文件。
# 安装路径
DIR/opt/docker/demo
DOCKER_NAMEdocker-redis# 创建目录结构
mkdir -p $DIR/redis/data
mkdir -p $DIR/redis/confconf存放 Redis 的配置文件如 redis.conf。data存放 Redis 数据文件。
三、启动 Redis 容器
1. 通过 redis.conf 配置文件设置密码
在启动 Redis 容器之前我们需要准备好 Redis 的配置文件。在容器内Redis 使用 redis.conf 配置文件来管理服务的行为。你可以选择自定义这个文件中的设置如密码、端口、持久化方式等。
获取配置文件你可以从 Redis 官方镜像容器中复制 redis.conf 文件或者手动创建一个。 启动临时 Redis 容器来获取配置文件 docker run --name redis_test -d redis:6复制 redis.conf 文件到本地目录 docker cp redis_test:/usr/local/etc/redis/redis.conf $DIR/redis/conf/redis.conf删除临时 Redis 容器 docker rm -f redis_test在 redis.conf 配置文件中你可以通过设置 requirepass 来启用密码保护。打开 redis.conf 文件找到以下配置并取消注释 requirepass yourpassword将 yourpassword 替换为你希望设置的密码例如 123456。如果你希望修改其他配置如监听端口也可以在这个文件中进行修改。 常见的 Redis 配置项 port设置 Redis 的监听端口默认是 6379。bind指定 Redis 监听的 IP 地址确保只允许来自特定 IP 的连接。requirepass启用密码保护。 例如如果你希望将 Redis 监听端口修改为 6380可以修改配置文件中的 port 配置项 port 6380启动 Redis 容器 一旦准备好了 redis.conf 配置文件我们可以通过以下命令启动 Redis 容器并挂载本地目录到容器内 docker run -d \--restartalways \--privilegedtrue \--log-opt max-size100m \--log-opt max-file2 \--name $DOCKER_NAME \--network host \-v $DIR/redis/conf/redis.conf:/etc/redis/redis.conf \-v $DIR/redis/data:/data \-v /etc/localtime:/etc/localtime \redis:6 redis-server /etc/redis/redis.conf --appendonly yes解释参数 -d后台运行容器。--restartalways容器在崩溃或系统重启后自动重启。--privilegedtrue授予容器额外权限通常用于需要特殊访问权限的操作。--log-opt max-size100m 和 --log-opt max-file2配置日志文件大小和最大文件数避免日志文件过大。--name $DOCKER_NAME指定容器名称这里是 docker-redis。--network host容器将使用宿主机的网络栈直接暴露端口。-v $DIR/redis/conf/redis.conf:/etc/redis/redis.conf将本地的 redis.conf 配置文件挂载到容器内。-v $DIR/redis/data:/data将 Redis 数据文件挂载到容器内确保数据持久化。-v /etc/localtime:/etc/localtime确保容器的时区与宿主机一致。redis:6 redis-server /etc/redis/redis.conf --appendonly yes指定 Redis 镜像并使用自定义配置文件启动 Redis开启 appendonly 持久化。
优点
配置灵活可以同时设置 Redis 的多项参数如端口、密码、持久化等。容器内部的 Redis 配置和密码设置与容器外部一致便于管理。
缺点
需要手动准备和维护 redis.conf 文件。配置文件较为复杂可能需要额外的操作才能适应不同的需求。
2. 通过 Docker 命令中的 requirepass 参数设置密码
直接在 Docker 启动命令中通过 requirepass 参数来设置密码是一种简便快速的方法。适用于简单场景尤其是只需要设置密码而不需要更改其他配置时。
使用以下命令启动 Redis 容器并通过 requirepass 参数直接设置密码
docker run -d \--restartalways \--privilegedtrue \--log-opt max-size100m \--log-opt max-file2 \--name $DOCKER_NAME \--network host \-v $DIR/redis/data:/data \-v /etc/localtime:/etc/localtime \redis:6 redis-server --appendonly yes --requirepass 123456这里我们直接通过命令行中的 --requirepass 参数来设置密码避免了配置文件的修改。
优点
快速简便适合不需要修改其他 Redis 配置的场景。不需要手动编辑或管理 redis.conf 配置文件。
缺点
只能设置密码无法进行其他复杂的配置如修改端口、持久化等。密码直接写在命令行中可能会有安全隐患尤其是日志中可能会记录命令。
四、Host 网络模式与 Port 映射模式
在 Docker 中容器的端口配置是非常关键的。Redis 容器支持两种主要的端口配置方式Host 网络模式 和 Port 映射模式。 Host 网络模式 如果你使用 --network host容器将共享宿主机的网络栈这意味着容器直接使用宿主机的 IP 地址和端口来暴露服务。容器会监听宿主机的 Redis 默认端口6379而无需进行端口映射。 配置命令 docker run -d \--restartalways \--privilegedtrue \--log-opt max-size100m \--log-opt max-file2 \--name $DOCKER_NAME \--network host \-v $DIR/redis/conf/redis.conf:/etc/redis/redis.conf \-v $DIR/redis/data:/data \-v /etc/localtime:/etc/localtime \redis:6 redis-server /etc/redis/redis.conf --appendonly yes优点 容器共享宿主机的网络性能较高。无需显式端口映射容器与宿主机共享相同的网络。 缺点 容器与宿主机的网络完全共享可能会有端口冲突尤其是多个容器或服务同时运行时。容器的端口与宿主机端口相同可能存在安全隐患。 Port 映射模式 如果你希望使用宿主机的特定端口来访问容器内的服务可以使用 -p 参数进行端口映射。通过这种方式容器内部的端口例如 6379将映射到宿主机的另一个端口例如 6380。 配置命令 docker run -d \--restartalways \--privilegedtrue \--log-opt max-size100m \--log-opt max-file2 \--name $DOCKER_NAME \-p 6380:6379 \-v $DIR/redis/conf/redis.conf:/etc/redis/redis.conf \-v $DIR/redis/data:/data \-v /etc/localtime:/etc/localtime \redis:6 redis-server /etc/redis/redis.conf --appendonly yes在这个配置中 -p 6380:6379将宿主机的 6380 端口映射到容器的 6379 端口。你可以通过宿主机的 http://localhost:6380 访问 Redis 服务。 优点 容器共享宿主机的网络性能较高。无需显式端口映射容器与宿主机共享相同的网络。 缺点 容器与宿主机的网络完全共享可能会有端口冲突尤其是多个容器或服务同时运行时。容器的端口与宿主机端口相同可能存在安全隐患。
五、检查 Redis 容器状态
容器启动后你可以通过以下命令查看容器状态确保它在运行中
docker ps如果容器未正常运行可以查看日志进行排查
docker logs docker-redis六、访问 Redis 服务
完成上述步骤后你可以通过客户端连接到 Redis 容器并进行操作。使用 Redis CLI 连接时需要提供密码
redis-cli -h localhost -p 6379 -a 123456 # Host 网络模式其中localhost 是 Redis 服务所在的宿主机地址6379 是 Redis 默认的监听端口123456 是我们设置的密码。
或者如果使用了端口映射
redis-cli -h localhost -p 6380 -a 123456 # Port 映射模式总结
通过 Docker 部署 Redis 容器非常简便并且可以灵活配置各个参数。你可以使用挂载本地目录来管理 Redis 的配置文件、数据文件和日志文件这样可以确保配置和数据持久化存储。设置密码保护是保障 Redis 安全性的重要措施推荐通过 redis.conf 配置文件来管理密码。
两种端口配置方式Host 网络模式和 Port 映射模式可以根据需求选择。Host 网络模式适合性能要求高的场景而 Port 映射模式则更灵活且能有效避免端口冲突。