使用docker-compose建立Redis
阿新 • • 發佈:2020-09-10
使用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 驗證密碼
到此結束