docker stack 部署 redis


===============================================

2019/10/21_第3次修改                       ccb_warlock

 

更新說明:

2019/10/21:1.redis的配置文件中增加了內存大小的限制

                      2.stack文件中,修改了redis4的最后版本的鏡像(redis:4.0.14-alpine)

                      3.stack文件中,增加了資源限制、更新回滾的配置

                      4.增加了swarm網絡的創建語句

2019/4/16:1.修改了2.3內容不正確的問題;

                    2.去掉了redis.conf的注釋內容,使配置項更信息;

===============================================

 redis作為目前性能較高的nosql數據庫在業務的運用中越來越廣泛,由於redis的容器化已經比較成熟,故本篇整理stack中部署redis容器服務的方式。

 


 一、前提條件

 


 二、部署redis

 2.1 創建映射的本地目錄

mkdir -p /usr/docker-vol/redis/conf
mkdir -p /usr/docker-vol/redis/data

 

 2.2 添加配置文件redis.conf

vi /usr/docker-vol/redis/conf/redis.conf

 

 # 添加下面的內容到redis.conf,wq保存(該配置文件中配置了redis的密碼123456,根據實際情況可以注釋掉)

# 限制ip連接該redis
#bind 127.0.0.1

# 保護模式
protected-mode no

# 端口
port 6379

# 內存限制 maxmemory 512mb
tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./
slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 # 密碼 requirepass 123456 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no slave-lazy-flush no # 持久化。開啟yes,關閉no(默認) appendonly yes appendfilename "appendonly.aof" # 每次收到寫命令就立即強制寫入磁盤,最慢的,但是保證完全的持久化,不推薦使用 # appendfsync always # (默認)每秒鍾強制寫入磁盤一次,在性能和持久化方面做了很好的折中,推薦使用這個配置 appendfsync everysec # 完全依賴os,性能最好,持久化沒保證 # appendfsync no no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble no lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 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-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes

 

 2.3 配置redis-stack.yml

cd
vim redis-stack.yml

 

 # 添加下面的內容到redis-stack.yml文件內,wq保存。

version: '3.6'
services:

  redis:
    image: redis:4.0.14-alpine
    environment:
      - TZ=Asia/Shanghai
    volumes:
      # 配置文件
      - /usr/docker-vol/redis/conf/redis.conf:/etc/redis.conf
      # 持久化的文件所在目錄
      - /usr/docker-vol/redis/data:/data
    command:
      redis-server /etc/redis.conf
    deploy:
      replicas: 1
      restart_policy:
        condition: any # on-failure
resources:
limits:
cpus: "1"
memory: 512M
update_config:
parallelism: 1
delay: 5s
monitor: 10s
max_failure_ratio: 0.1
order: start-first ports:
- 6379:6379 networks: - net01 networks: net01: external: true

 

 2.4 創建網絡

# swarm用的網絡

docker network create \
  --driver=overlay \
  --subnet=172.12.0.0/16 \
  --ip-range=172.12.0.0/16 \
  --gateway=172.12.0.1 \
  --attachable \
  net01

 

 2.5 創建棧

 1)命令方式

cd
docker stack deploy -c redis-stack.yml redis-stack

 

 2)portainer界面方式(推薦)

 登錄portainer(如果是根據上面的教程部署的portainer,瀏覽器訪問http://宿主機IP:9000,在stack中增加rabbitmq-stack.yml文件中的內容)

 

 

 


 參考資料:
 1.https://blog.csdn.net/zyz511919766/article/details/42268219


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM