
Linux使用docker和docker-compose
docker的安装
1、设置阿里的镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果设置时报如下错
-bash: yum-config-manager: command not found,
是因为没有安装这个命令,这个命令在yum-utils 包里,安装命令如下:
yum install -y yum-utils device-mapper-persistent-data lvm2
2、查看所有的docker
yum list docker-ce --showduplicates | sort -r
3、安装最新版本
yum install -y docker-ce docker-ce-cli containerd.io
4、安装指定版本
yum install docker-ce-版本 docker-ce-版本 containerd.io
5、安装最新版本报错
报错提示
(try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages)
原因
这个错误信息通常出现在使用Linux操作系统中的包管理器(如apt或yum)安装或更新软件包时。它表明有一个或多个软件包的依赖关系冲突,而且正在尝试安装或升级的软件包需要替换现有的、同名但版本不同的软件包。
解决方法
在命令行中添加 --allowerasing 参数。这将允许包管理器替换冲突的软件包。
安装命令
yum install --allowerasing -y docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
查看docker状态
systemctl status docker
设置docker开机自启动
systemctl enable docker
docker-compose的安装
1、在github上下载docker-compose包
https://github.com/docker/compose/releases
2、上传到服务器
上传到/usr/local/bin目录下,并重命名docker-compose
3、给docker-compose赋予执行权限
chmod +x /usr/local/bin/docker-compose
4、查看版本号
docker-compose -version
使用docker拉取Java
1、查看Java官方镜像
docker search java
2、拉取Java镜像
docker pull <Java镜像名称:tag>
3、运行Java容器
docker run -it <Java镜像名称:tag> /bin/bash
4、查看Java版本
java -version
使用docker-compose部署Nginx Proxy Manager
1、创建一个Nginx目录,并进入
mkdir NginxProxyManager && cd NginxProxyManager
2、创建docker-compose.yml文件
vi docker-compose.yml
3、编写docker-compose.yml文件
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 不建议修改端口
- '81:81' # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
- '443:443' # 不建议修改端口
volumes:
- ./data:/data # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
- ./letsencrypt:/etc/letsencrypt # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建
4、使用docker-compose启动NginxProxyManager
docker-compose up -d
5、在浏览器访问NginxProxyManager进行配置
NginxProxyManager默认的端口是81,所以只需要访问:服务器IP:81,就可以进入页面
初始的用户和密码如下:
Email: admin@example.com
Password: changeme
使用docker-compose 部署Mysql数据库
1、创建mysql目录,并进入
下述命令将创建mysql目录,并且mysql目录里面有三个文件夹,分别是config(配置文件),data(数据),logs(日志)
mkdir -p mysql/{log,data.config} && cd mysql
2、创建docker-compose.yml配置文件
version: '3'
services:
mysql: # 名称
image: mysql:latest # mysql镜像版本,也可以mysql:latest直接最新版本
container_name: mysql # 容器名称
ports:
- 3306:3306 # 指定宿主机端口与容器端口映射关系,宿主机:容器
restart: always # 表示容器随docker启动自启
environment:
LANG: en_US.UTF-8 # 设置语言
MYSQL_ROOT_PASSWORD: 123456 # root用户密码
TZ: Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro # 同步宿主机时钟与容器的时钟,ro(read only),表示只读。
- ./mysql/log:/var/log/mysql # 映射日志目录,宿主机:容器
- ./mysql/data:/var/lib/mysql # 映射数据目录,宿主机:容器
- ./mysql/config/my.cnf:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
3、创建自定义的mysql配置文件(可选)
进入config目录中创建一个my.cnf的文件,将下述语句粘贴进该文件中
[mysqld]
# MySQL启动用户
user=mysql
# MySQL端口
port = 3306
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置mysql服务端默认字符集
character-set-server=utf8mb4
# pid文件所在目录
#pid-file = /var/run/mysqld/mysqld.pid
pid-file = /var/lib/mysql/mysql.pid
# 用于本地连接的socket文件目录
#socket = /var/run/mysqld/mysqld.sock
socket = /var/lib/mysql/mysql.sock
# 数据文件存放的目录
datadir = /var/lib/mysql
# 错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/var/log/mysql/error.log
# 通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/var/log/mysql/general.log
# 慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以用来查找查询执行时间长的语句,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow_query.log
#设置超过5秒执行的语句被记录,缺省时为10秒
long_query_time=5
# Disabling symbolic-links is recommended to prevent assorted security risks
#禁用符号链接以防止各种安全风险
symbolic-links=0
# 定义sql模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
max_allowed_packet=16M
# 允许最大连接数
max_connections=1000
# 缓存池大小
# innodb_buffer_pool_size = 12G
# 缓存池实例个数
# innodb_buffer_pool_instances = 10
# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
[mysql]
# 设置默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
4、使用docker-compose启动mysql
docker-compose up -d
5、进入容器进行测试
docker-compose exec mysql /bin/bash
使用docker-compose部署Redis缓存数据库
1、创建redis目录,并进入
下述命令将创建redis目录,并且redis目录里面有三个文件夹,分别是config(配置文件),data(数据),logs(日志)
mkdir -p redis/{config,data,logs} && cd redis
2、创建日志文件
创建一个名为redis的日志文件
touch redis/logs/redis.log
3、进入配置文件夹中,创建配置文件
touch config/redis.conf
将下面配置内容粘贴进新创建的配置文件中
#redis.conf
# 关闭保护模式,允许远程连接
protected-mode no
# 设置 TCP 连接队列的最大长度。当有多个客户端同时尝试连接到 Redis 时,这个值决定了可以排队等待的连接数。
tcp-backlog 511
# 设置 TCP keepalive 选项,单位为秒。如果设置为非零值,Redis 会定期发送 TCP keepalive 包以检测空闲连接是否仍然有效。
tcp-keepalive 300
# 让 Redis 在后台运行。设置为 yes 后,Redis 将作为守护进程运行。
daemonize yes
# 指定 Redis 进程 ID (PID) 文件的位置。
pidfile "/var/run/redis_6379.pid"
# 设置日志级别。可选值包括 debug, verbose, notice, warning。日志级别越高,记录的信息越少。
loglevel notice
# 指定日志文件的位置和名称。
logfile "6379.log"
# 设置数据库的数量。Redis 默认支持 16 个逻辑数据库(编号从 0 到 14)。
databases 16
# 设置进程标题模板,用于显示在系统监控工具中。
proc-title-template "{title} {listen-addr} {server-mode}"
# 如果 BGSAVE(后台保存)操作出错,停止接受写请求。
stop-writes-on-bgsave-error yes
# 启用 RDB 文件压缩。
rdbcompression yes
# 启用 RDB 文件校验和。
rdbchecksum yes
# 指定 RDB 文件的名称。
dbfilename "dump.rdb"
# 禁用同步删除临时 RDB 文件。
rdb-del-sync-files no
# 允许副本提供过期数据。
replica-serve-stale-data yes
# 设置副本为只读模式。
replica-read-only yes
# 禁用无盘复制同步。
repl-diskless-sync no
# 设置无盘复制同步延迟时间,单位为秒。
repl-diskless-sync-delay 5
# 禁用 Nagle 算法,减少网络延迟。
repl-disable-tcp-nodelay no
# 设置副本优先级。数值越大,优先级越高。
replica-priority 100
# 设置 ACL 日志的最大长度。
acllog-max-len 128
# 设置访问密码,用于保护 Redis 实例。
requirepass "123456789"
# 禁用懒惰删除机制中的懒惰逐出策略。
lazyfree-lazy-eviction no
# 禁用懒惰删除机制中的懒惰过期策略。
lazyfree-lazy-expire no
# 禁用懒惰删除机制中的懒惰服务器删除策略。
lazyfree-lazy-server-del no
# 禁用懒惰删除机制中的懒惰刷新策略。
replica-lazy-flush no
# 禁用懒惰删除机制中的懒惰用户删除策略。
lazyfree-lazy-user-del no
# 禁用懒惰删除机制中的懒惰用户刷新策略。
lazyfree-lazy-user-flush no
# 禁用透明大页内存管理。
oom-score-adj no
# 设置 OOM(Out Of Memory)评分调整值。
oom-score-adj-values 0 200 800
# 禁用透明大页内存管理。
disable-thp yes
# 启用 AOF(Append Only File)持久化方式。
appendonly yes
# 指定 AOF 文件的名称。
appendfilename "appendonly.aof"
# 设置 AOF 文件的同步频率。可选值包括 always, everysec, no。
appendfsync everysec
# 在重写期间禁用 AOF 文件同步。
no-appendfsync-on-rewrite no
# 设置 AOF 文件自动重写的触发条件,即当前 AOF 文件大小与上一次重写后 AOF 文件大小的比率。
auto-aof-rewrite-percentage 100
# 设置 AOF 文件自动重写的最小大小。
auto-aof-rewrite-min-size 64mb
# 如果 AOF 文件被截断,则加载 AOF 文件时忽略错误。
aof-load-truncated yes
# 使用 RDB 预amble 来验证 AOF 文件的完整性。
aof-use-rdb-preamble yes
# 设置 Lua 脚本执行的最大时间,单位为毫秒。
lua-time-limit 5000
# 设置慢查询日志的最大长度。
slowlog-max-len 128
# 设置延迟监控的阈值,单位为微秒。
latency-monitor-threshold 0
# 设置键空间通知事件的类型。空字符串表示不发送任何通知。
notify-keyspace-events ""
# 设置哈希表的最大压缩列表长度。
hash-max-ziplist-entries 512
# 设置哈希表的最大压缩列表值大小,单位为字节。
hash-max-ziplist-value 64
# 设置列表的最大压缩列表长度。负值表示禁用压缩列表。
list-max-ziplist-size -2
# 设置列表的压缩深度。
list-compress-depth 0
# 设置整数集合的最大元素数量。
set-max-intset-entries 512
# 设置有序集合的最大压缩列表长度。
zset-max-ziplist-entries 128
# 设置有序集合的最大压缩列表值大小,单位为字节。
zset-max-ziplist-value 64
# 设置 HLL(HyperLogLog)稀疏最大字节数。
hll-sparse-max-bytes 3000
# 设置流节点的最大字节数。
stream-node-max-bytes 4kb
# 设置流节点的最大条目数。
stream-node-max-entries 100
# 启用动态调整 hz(Hertz)参数。
activerehashing yes
# 设置客户端输出缓冲区限制,格式为 normal <硬限制> <软限制> <软时间限制>,replica <硬限制> <软限制> <软时间限制>,pubsub <硬限制> <软限制> <软时间限制>。
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# 设置服务器每秒处理的命令数量。默认值为 10。
hz 10
# 启用动态调整 hz(Hertz)参数。
dynamic-hz yes
# 启用增量式 AOF 文件重写。
aof-rewrite-incremental-fsync yes
# 启用增量式 RDB 文件保存。
rdb-save-incremental-fsync yes
# 启用 jemalloc 后台线程。
jemalloc-bg-thread yes
# 设置 RDB 快照保存规则,格式为 save <seconds> <changes>。例如,以下配置表示在每秒钟至少有1次修改时进行快照保存,每300秒至少有10000次修改时进行快照保存,每60秒至少有100次修改时进行快照保存。
save 3600 1
save 300 100
save 60 10000
4、编写docker-compose.yml文件
version: '3'
services:
redis: # 服务名称
image: "redis:latest" # redis镜像版本
container_name: redis # 容器名称
restart: always # 容器开机自启
privileged: true # 获取宿主机root权限
ports:
- 6379:6379 # 指定宿主机端口与容器端口映射关系,宿主机:容器
volumes:
# 分别是第一步骤中创建的三个文件夹的路径
- ./redis/config/redis.conf:/etc/redis/redis.conf:rw # 映射配置文件目录,宿主机:容器
- ./redis/data:/data:rw # 映射数据目录,宿主机:容器
- ./redis/logs:/logs:rw # 映射日志目录,宿主机:容器
command:
# 执行的命令
redis-server ./redis/config/redis.conf # 指定配置文件启动redis-server进程
5、使用docker-compose启动redis
docker-compose up -d
使用redis客户端进行连接测试,密码在配置文件中设置为123456789
一键部署Mysql、Redis、NginxProxyManager
1、创建目录,后续的文件将会在这个目录中
mkdir 目录名 && cd 目录名
2、创建Mysql和Redis的配置文件
2.1 创建Mysql配置文件
mkdir ./mysql/config && touch ./mysql/config/my.cnf
2.2 编写my.cnf配置文件
[mysqld]
# MySQL启动用户
user=mysql
# MySQL端口
port = 3306
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置mysql服务端默认字符集
character-set-server=utf8mb4
# pid文件所在目录
#pid-file = /var/run/mysqld/mysqld.pid
pid-file = /var/lib/mysql/mysql.pid
# 用于本地连接的socket文件目录
#socket = /var/run/mysqld/mysqld.sock
socket = /var/lib/mysql/mysql.sock
# 数据文件存放的目录
datadir = /var/lib/mysql
# 错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/var/log/mysql/error.log
# 通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/var/log/mysql/general.log
# 慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以用来查找查询执行时间长的语句,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow_query.log
#设置超过5秒执行的语句被记录,缺省时为10秒
long_query_time=5
# Disabling symbolic-links is recommended to prevent assorted security risks
#禁用符号链接以防止各种安全风险
symbolic-links=0
# 定义sql模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
max_allowed_packet=16M
# 允许最大连接数
max_connections=1000
# 缓存池大小
# innodb_buffer_pool_size = 12G
# 缓存池实例个数
# innodb_buffer_pool_instances = 10
# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
[mysql]
# 设置默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
2.3创建Redis缓存数据库配置文件
mkdir ./redis/config && touch ./redis/config/redis.cnf
2.4编写Redis配置文件
#redis.conf
# 关闭保护模式,允许远程连接
protected-mode no
# 设置 TCP 连接队列的最大长度。当有多个客户端同时尝试连接到 Redis 时,这个值决定了可以排队等待的连接数。
tcp-backlog 511
# 设置 TCP keepalive 选项,单位为秒。如果设置为非零值,Redis 会定期发送 TCP keepalive 包以检测空闲连接是否仍然有效。
tcp-keepalive 300
# 让 Redis 在后台运行。设置为 yes 后,Redis 将作为守护进程运行。
daemonize yes
# 指定 Redis 进程 ID (PID) 文件的位置。
pidfile "/var/run/redis_6379.pid"
# 设置日志级别。可选值包括 debug, verbose, notice, warning。日志级别越高,记录的信息越少。
loglevel notice
# 指定日志文件的位置和名称。
logfile "6379.log"
# 设置数据库的数量。Redis 默认支持 16 个逻辑数据库(编号从 0 到 14)。
databases 16
# 设置进程标题模板,用于显示在系统监控工具中。
proc-title-template "{title} {listen-addr} {server-mode}"
# 如果 BGSAVE(后台保存)操作出错,停止接受写请求。
stop-writes-on-bgsave-error yes
# 启用 RDB 文件压缩。
rdbcompression yes
# 启用 RDB 文件校验和。
rdbchecksum yes
# 指定 RDB 文件的名称。
dbfilename "dump.rdb"
# 禁用同步删除临时 RDB 文件。
rdb-del-sync-files no
# 允许副本提供过期数据。
replica-serve-stale-data yes
# 设置副本为只读模式。
replica-read-only yes
# 禁用无盘复制同步。
repl-diskless-sync no
# 设置无盘复制同步延迟时间,单位为秒。
repl-diskless-sync-delay 5
# 禁用 Nagle 算法,减少网络延迟。
repl-disable-tcp-nodelay no
# 设置副本优先级。数值越大,优先级越高。
replica-priority 100
# 设置 ACL 日志的最大长度。
acllog-max-len 128
# 设置访问密码,用于保护 Redis 实例。
requirepass "123456789"
# 禁用懒惰删除机制中的懒惰逐出策略。
lazyfree-lazy-eviction no
# 禁用懒惰删除机制中的懒惰过期策略。
lazyfree-lazy-expire no
# 禁用懒惰删除机制中的懒惰服务器删除策略。
lazyfree-lazy-server-del no
# 禁用懒惰删除机制中的懒惰刷新策略。
replica-lazy-flush no
# 禁用懒惰删除机制中的懒惰用户删除策略。
lazyfree-lazy-user-del no
# 禁用懒惰删除机制中的懒惰用户刷新策略。
lazyfree-lazy-user-flush no
# 禁用透明大页内存管理。
oom-score-adj no
# 设置 OOM(Out Of Memory)评分调整值。
oom-score-adj-values 0 200 800
# 禁用透明大页内存管理。
disable-thp yes
# 启用 AOF(Append Only File)持久化方式。
appendonly yes
# 指定 AOF 文件的名称。
appendfilename "appendonly.aof"
# 设置 AOF 文件的同步频率。可选值包括 always, everysec, no。
appendfsync everysec
# 在重写期间禁用 AOF 文件同步。
no-appendfsync-on-rewrite no
# 设置 AOF 文件自动重写的触发条件,即当前 AOF 文件大小与上一次重写后 AOF 文件大小的比率。
auto-aof-rewrite-percentage 100
# 设置 AOF 文件自动重写的最小大小。
auto-aof-rewrite-min-size 64mb
# 如果 AOF 文件被截断,则加载 AOF 文件时忽略错误。
aof-load-truncated yes
# 使用 RDB 预amble 来验证 AOF 文件的完整性。
aof-use-rdb-preamble yes
# 设置 Lua 脚本执行的最大时间,单位为毫秒。
lua-time-limit 5000
# 设置慢查询日志的最大长度。
slowlog-max-len 128
# 设置延迟监控的阈值,单位为微秒。
latency-monitor-threshold 0
# 设置键空间通知事件的类型。空字符串表示不发送任何通知。
notify-keyspace-events ""
# 设置哈希表的最大压缩列表长度。
hash-max-ziplist-entries 512
# 设置哈希表的最大压缩列表值大小,单位为字节。
hash-max-ziplist-value 64
# 设置列表的最大压缩列表长度。负值表示禁用压缩列表。
list-max-ziplist-size -2
# 设置列表的压缩深度。
list-compress-depth 0
# 设置整数集合的最大元素数量。
set-max-intset-entries 512
# 设置有序集合的最大压缩列表长度。
zset-max-ziplist-entries 128
# 设置有序集合的最大压缩列表值大小,单位为字节。
zset-max-ziplist-value 64
# 设置 HLL(HyperLogLog)稀疏最大字节数。
hll-sparse-max-bytes 3000
# 设置流节点的最大字节数。
stream-node-max-bytes 4kb
# 设置流节点的最大条目数。
stream-node-max-entries 100
# 启用动态调整 hz(Hertz)参数。
activerehashing yes
# 设置客户端输出缓冲区限制,格式为 normal <硬限制> <软限制> <软时间限制>,replica <硬限制> <软限制> <软时间限制>,pubsub <硬限制> <软限制> <软时间限制>。
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# 设置服务器每秒处理的命令数量。默认值为 10。
hz 10
# 启用动态调整 hz(Hertz)参数。
dynamic-hz yes
# 启用增量式 AOF 文件重写。
aof-rewrite-incremental-fsync yes
# 启用增量式 RDB 文件保存。
rdb-save-incremental-fsync yes
# 启用 jemalloc 后台线程。
jemalloc-bg-thread yes
# 设置 RDB 快照保存规则,格式为 save <seconds> <changes>。例如,以下配置表示在每秒钟至少有1次修改时进行快照保存,每300秒至少有10000次修改时进行快照保存,每60秒至少有100次修改时进行快照保存。
save 3600 1
save 300 100
save 60 10000
3、创建docker-compose.yml文件
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 不建议修改端口
- '81:81' # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
- '443:443' # 不建议修改端口
volumes:
- ./nginx/data:/data # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
- ./nginx/letsencrypt:/etc/letsencrypt # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建
mysql: # 名称
image: mysql:latest # mysql镜像版本,也可以mysql:latest直接最新版本
container_name: mysql # 容器名称
ports:
- 3306:3306 # 指定宿主机端口与容器端口映射关系,宿主机:容器
restart: always # 表示容器随docker启动自启
environment:
LANG: en_US.UTF-8 # 设置语言
MYSQL_ROOT_PASSWORD: 123456 # root用户密码
TZ: Asia/Shanghai
volumes:
- /etc/localtime:/etc/localtime:ro # 同步宿主机时钟与容器的时钟,ro(read only),表示只读。
- ./mysql/log:/var/log/mysql # 映射日志目录,宿主机:容器
- ./mysql/data:/var/lib/mysql # 映射数据目录,宿主机:容器
- ./mysql/config/my.cnf:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
redis: # 服务名称
image: "redis:latest" # redis镜像版本
container_name: redis # 容器名称
restart: always # 容器开机自启
privileged: true # 获取宿主机root权限
ports:
- 6379:6379 # 指定宿主机端口与容器端口映射关系,宿主机:容器
volumes:
# 分别是第一步骤中创建的三个文件夹的路径
- ./redis/config/redis.conf:/etc/redis/redis.conf:rw # 映射配置文件目录,宿主机:容器
- ./redis/data:/data:rw # 映射数据目录,宿主机:容器
- ./redis/logs:/logs:rw # 映射日志目录,宿主机:容器
command:
# 执行的命令
redis-server ./redis/config/redis.conf # 指定配置文件启动redis-server进程