2024 年云原生运维实战文档 99 篇原创计划 第 034 篇 |Docker 最佳实战「2024」系列 第 019 篇
你好,欢迎来到运维有术。
今天分享的内容是 Docker 最佳实战「2024」 系列文档中的 Docker 部署单节点 Redis 实战。
本文将详细介绍如何用 Docker 容器及 Docker Compose 部署单节点 Redis。
实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)
主机名 | IP | CPU(核) | 内存(GB) | 系统盘(GB) | 数据盘(GB) | 用途 |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Docker 节点 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Docker 节点 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Docker 节点 3 |
合计 | 3 | 12 | 48 | 120 | 300 |
实战环境涉及软件版本信息
使用 Docker 部署 Redis 服务的镜像有以下几种选择:
本文选择下载量最大的 DockerHub 官方提供的镜像,构建单节点 Redis 服务。
cd /data/containers
mkdir -p redis/{data,config,logs}
创建配置文件,vi redis/config/redis.conf
# 通用配置
daemonize no
pidfile /var/run/redis-server.pid
loglevel notice
dir /data
# 持久化配置
save 60 10000
save 300 100000
save 900 1000000
rdbcompression yes
dbfilename dump.rdb
databases 16
# 网络配置
port 6379
timeout 0
tcp-backlog 511
# AOF 配置
appendonly yes
appendfilename appendonly.aof
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 其他高级配置
activerehashing yes
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# 慢查询日志
slowlog-log-slower-than 10000
slowlog-max-len 1024
# 安全认证
requirepass OpsXlab@2024
创建配置文件,vi redis/docker-compose.yml
services:
redis:
container_name: redis
image: redis:7.0.15
restart: always
ulimits:
nofile:
soft: 65536
hard: 65536
sysctls:
- net.core.somaxconn=511
environment:
- TZ=Asia/Shanghai
networks:
- app-tier
ports:
- 6379:6379
volumes:
- ./data:/data
- ./config:/etc/redis/
command: redis-server /etc/redis/redis.conf
networks:
app-tier:
name: app-tier
driver: bridge
#external: true
cd /data/containers/redis
docker compose up -d
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
redis redis:7.0.15 "docker-entrypoint.s…" redis 5 seconds ago Up 4 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp
# 通过日志查看容器是否有异常,结果略
$ docker compose logs -f
为了测试 Redis 服务的可用性,利用 Docker 创建一个 Redis 客户端容器实例,并执行几个简单的查询命令。
docker run -it --rm --network app-tier redis:7.0.15 redis-cli -h 192.168.9.81
$ docker run -it --rm --network app-tier redis:7.0.15 redis-cli -h 192.168.9.81
192.168.9.81:6379> AUTH OpsXlab@2024
OK
192.168.9.81:6379> ping
PONG
192.168.9.81:6379> set hello opsxlab
OK
192.168.9.81:6379> get hello
"opsxlab"
192.168.9.81:6379>
文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):
运维有术星球会员请到专属代码仓库下载(价值内容,仅星球会员专享)。
以上,就是我今天分享的全部内容。下一期分享的内容还没想好,敬请期待开盲盒。