1、Redis
docker run -p 6379:6379 -d --restart always -v E:\dockers_volume\redis\conf\redis.conf:/usr/local/etc/redis/redis.conf -v E:\dockers_volume\redis\data:/data -v E:\dockers_volume\redis\conf\users.acl:/usr/local/etc/redis/users.acl --name redis redis:7.4.2 /usr/local/etc/redis/redis.conf
命令中的/usr/local/etc/redis/redis.conf参数,表示使用该【/usr/local/etc/redis/redis.conf】配置文件启动redis容器。不指定则配置文件配置则不生效。
配置文件示例如下:
# Redis 配置文件示例
# 绑定 IP 地址(默认只监听 127.0.0.1,改为 0.0.0.0 允许所有 IP 访问)
bind 0.0.0.0
# 监听端口
port 6379
# 启用 ACL
aclfile /usr/local/etc/redis/users.acl
# 设置密码(取消注释并设置密码)
# requirepass yourpassword
# 最大内存限制(例如 1GB)
maxmemory 1gb
# 内存达到上限时的淘汰策略
maxmemory-policy allkeys-lru
# 是否以守护进程方式运行(后台运行)
daemonize no
# 日志级别(可选:debug、verbose、notice、warning)
loglevel notice
# 日志文件路径(如果为空,则输出到标准输出)
logfile ""
# 数据库数量(默认 16 个)
databases 16
# 数据持久化配置
# ==== 开启 RDB 持久化
# 900 秒内至少有 1 个 key 被修改时触发保存
save 900 1
# 300 秒内至少有 10 个 key 被修改时触发保存
save 300 10
# 60 秒内至少有 10000 个 key 被修改时触发保存
save 60 10000
# RDB 文件名称
dbfilename dump.rdb
# RDB 文件保存路径,如果是使用docker来运行redis,不要修改这个目录
dir /data
# 开启 AOF 持久化
appendonly yes
# AOF 文件名称
appendfilename "appendonly.aof"
# AOF 同步策略(可选:always、everysec、no)
appendfsync everysec
# 客户端连接配置
# 最大客户端连接数
maxclients 10000
# 客户端空闲超时时间(秒)
timeout 0
# 慢查询日志配置
# 慢查询日志阈值(单位:微秒,1000000 微秒 = 1 秒)
slowlog-log-slower-than 10000
# 慢查询日志最大长度
slowlog-max-len 128
# 高级配置
# 启用集群模式(取消注释以启用)
# cluster-enabled yes
# 集群配置文件路径
# cluster-config-file nodes-6379.conf
# 集群节点超时时间(毫秒)
# cluster-node-timeout 15000
# 启用 Lua 脚本沙盒模式
lua-time-limit 5000
- 配置文件中的【dir /data】为指定rdb的文件存储路径,要与docker运行命令中的-v参数相对应。
- aclfile /usr/local/etc/redis/users.acl表示启动acl用户管理
ACL配置示例及说明(users.acl):
user aolingo on >Aolingo@988. ~* +@all
user tstevo on >Tstevo@988. ~tstevo-* +@all
- aolingo:用户
- Aolingo@988.:为aolingo用户对应的密码
- ~*:表示可以访问所有键
- +@all:表示可以使用所有命令
生成中的样例:
user tstevo on >Tstevo@988. ~tstevo-* +@all
或
user tstevo on >Tstevo@988. ~tstevo:* +@all
- ~tstevo-*:表示的键必须为tstevo-888或tstevo-hello
- ~tstevo:*:表示的键必须为tstevo:888或tstevo:hello
2、PostgreSQL
docker run -d --restart always --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=你的密码 -e PGDATA=/var/lib/postgresql/data/pgdata -v E:\dockers_volume\postgresql:/var/lib/postgresql/data postgres:15.10
3、etcd(单服务,非集群)
docker run -d \
-v /usr/share/ca-certificates/:/etc/ssl/certs \
-p 14001:4001 -p 12380:2380 -p 12379:2379 \
--name etcd quay.io/coreos/etcd:v3.6.0 \
/usr/local/bin/etcd \
--name etcd0 \
--advertise-client-urls "http://127.0.0.1:2379,http://127.0.0.1:4001" \
--listen-client-urls "http://0.0.0.0:2379,http://0.0.0.0:4001" \
--initial-advertise-peer-urls "http://127.0.0.1:2380" \
--listen-peer-urls "http://0.0.0.0:2380" \
--initial-cluster-token "etcd-cluster-1" \
--initial-cluster "etcd0=http://127.0.0.1:2380" \
--initial-cluster-state "new"