使用docker-compose创建Redis
使用docker-compose创建Redis
版本信息:5.0.6
一、目录结构如下
1.1 docker-compose.yaml
version: '3'
services:
redis:
image: redis:latest
container_name: redis
restart: always
ports:
- 6379:6379
networks:
- mynetwork
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf:rw
- ./data:/data:rw
command:
/bin/bash -c "redis-server /usr/local/etc/redis/redis.conf "
networks:
mynetwork:
external: true
配置信息
1.1.1 设置docker compose版本
version: '3'
1.1.2 设置services
services:
redis:
设置 redis这个service的相关配置
1.1.2.1 指定镜像
image: redis:latest
1.1.2.2 指定容器名称
container_name: redis
1.1.2.3 重启docker引擎后该容器也重启
restart: always
1.1.2.4 指定映射端口
ports:
- 6379:6379
1.1.2.5 指定挂载目录
挂载一个目录或者一个已存在的数据卷容器,可以直接使用 [HOST:CONTAINER]格式,或者使用[HOST:CONTAINER:ro]格式,后者对于容器来说,数据卷是只读的,可以有效保护宿主机的文件系统。
Compose的数据卷指定路径可以是相对路径,使用 . 或者 .. 来指定相对目录。
这里配置了redis.conf
文件和data
目录分别映射了主机的redis.conf
文件和主机的data
目录
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf:rw
- ./data:/data:rw
1.1.2.6 启动时执行的命令
使用command可以覆盖容器启动后默认执行的命令。这里启动执行指定的redis.conf
文件
command:
/bin/bash -c "redis-server /usr/local/etc/redis/redis.conf "
1.1.2.7 使用的网络
networks:
- mynetwork
1.1.3 网络配置
networks:
mynetwork:
external: true
1.2 redis.conf
bind 0.0.0.0
protected-mode no
port 6379
timeout 0
save 900 1 # 900s内至少一次写操作则执行bgsave进行RDB持久化
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
requirepass 12345678
这个是根据自己需要设置的redis配置参数
二、 启动容器
2.1 后台启动应用
~/Documents/workspace/docker_mapping_volume/redis ll
total 16
drwxr-xr-x@ 4 lucky staff 128B 9 2 21:50 data
-rw-r--r--@ 1 lucky staff 378B 9 1 16:43 docker-compose.yaml
-rw-r--r--@ 1 lucky staff 257B 9 1 16:44 redis.conf
-rw-r--r-- 1 lucky staff 0B 8 31 15:46 redis.log
-rw-r--r-- 1 lucky staff 0B 8 31 15:46 redis.pid
~/Documents/workspace/docker_mapping_volume/redis docker-compose up -d
Creating redis ... done
~/Documents/workspace/docker_mapping_volume/redis docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d784c652a20 redis:latest "docker-entrypoint.s…" 4 seconds ago Up 2 seconds 0.0.0.0:6379->6379/tcp redis
~/Documents/workspace/docker_mapping_volume/redis
- 使用 docker-compose up -d 命令后台启动应用
- 使用docker ps 查看当前运行的容器
2.2 本地连接启动的服务
~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d784c652a20 redis:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:6379->6379/tcp redis
~ docker exec -it 6d784c652a20 redis-cli
127.0.0.1:6379>
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 12345678
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379>
- docker ps 查看当前运行的服务
- docker exec -it 6d784c652a20 redis-cli 连接redis服务
- keys * 查看当前redis中的key
- auth 12345678 验证密码
到此结束
知行合一