ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Apline镜像 构建redis-4.0.11-Dockerfile

2021-09-15 14:58:04  阅读:153  来源: 互联网

标签:11 4.0 no max Apline redis conf yes data


编写Dockerfile

FROM alpine:latest
MAINTAINER CC_TEST.com
RUN apk add --no-cache --virtual .build-deps curl gcc supervisor linux-headers make musl-dev tar \
    && mkdir /data \
    && mkdir /data/redis \
    && cd /data \
    && curl -sO http://download.redis.io/releases/redis-4.0.11.tar.gz  \
    && tar xf redis-4.0.11.tar.gz \ 
    && rm -fr redis-4.0.11.tar.gz \ 
    && rm -fr /var/cache/apk/* \ 
    && cd redis-4.0.11 \
    && make PREFIX=/usr/local/redis install \
    && rm -fr redis-4.0.11 \
    && touch /data/redis/redis.log
COPY ./supervisord.conf /etc/supervisord.conf
COPY ./startredis.sh /startredis.sh
EXPOSE 6379/tcp
RUN chmod +x /startredis.sh
ONBUILD RUN /usr/bin/supervisorctl reload
EnTRYPOINT ["/startredis.sh"]
	###nTR 是这个博客的违禁词语 我就小写了
#CMD ["/usr/local/redis/bin/redis-server","/etc/redis/redis.conf"]

redis.conf

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize  no
supervised no
pidfile /var/run/redis/redis.pid
loglevel notice
logfile /data/redis/redis.log
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 /data/redis/
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
maxmemory 495000000
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
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
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-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

supervisord.conf

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///run/supervisord.sock ; use a unix:// URL  for a unix socket
[program:redis-4.0.11]
  command=/bin/sh -c "exec /usr/local/redis/bin/redis-server /etc/redis/redis.conf"
  autostart=true
  autorestart=true
  startretries=3
  startsecs=10 
  stdout_events_enabled=true
  stderr_events_enabled=true
  stderr_logfile_maxbytes=20MB
  stdout_logfile_backups = 5

supervisord.conf文件解释

    [program:redis-4.0.11]
    command=/bin/sh -c "exec /usr/local/redis/bin/redis-server /etc/redis/redis.conf"  ; 程序启动命令
   autostart=true       ; 在supervisord启动的时候也自动启动
   startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
   autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
   startretries=3       ; 启动失败自动重试次数,默认是3
   user=tomcat          ; 用哪个用户启动进程,默认是root
   priority=999         ; 进程启动优先级,默认999,值小的优先启动
   redirect_stderr=true ; 把stderr重定向到stdout,默认false
   stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
   stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
   ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
   stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
   stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包   括子进程
   killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程

startredis.sh

#!/bin/sh
nohup  supervisord  -n -c /etc/supervisord.conf &

构建容器

docker build -t fangxin:redis4.0.11 .

在这里插入图片描述

启动容器

docker run -itd -p 6399:6379 -v /etc/redis.conf:/etc/redis/redis.conf:rw -v /mnt/redis:/data/redis:rw -v /data/soft/redis/startredis.sh:/startredis.sh:rw --name redis4_0_11 fangxin3-redis:4.0.11

在这里插入图片描述

docker-compose

root@mysql-2:/data/soft/redis# cat docker-compose.yaml
version: "3"
services:
  redis:
    image: fangxin:redis4.0.11
    restart: always
    container_name: test-redis4.0.11
    hostname: redis4.0.11
    sysctls:
      net.core.somaxconn: '1024'
      #fs.file-max: '100000'
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/redis.conf:/etc/redis/redis.conf:rw"
      - "/mnt/redis:/data/redis:rw"
      - "/data/soft/redis/startredis.sh:/startredis.sh:rw"
      - "/data/soft/redis/supervisord.conf:/etc/supervisord.conf:rw"
    dns:
      - "8.8.8.8"
    ports:
      - "6400:6379"
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    deploy:
      resources:
        limits:
          cpus: "0.30"
          memory: "512M"
    healthcheck:
      test: ["CMD","nc -v -w 5 localhost -z 6379||exit 1"]
      interval: 60s
      timeout: 10s
      retries: 3

docker-compose up -d
在这里插入图片描述

个人安装:
apk update
apk add --no-cache --virtual .build-deps curl gcc supervisor linux-headers make musl-dev tar
mkdir /etc/redis && mkdir /data && mkdir /data/redis/ && touch /data/redis/redis.log
curl -sO http://download.redis.io/releases/redis-4.0.11.tar.gz
tar xf redis-4.0.11.tar.gz
cd redis-4.0.11
make PREFIX=/usr/local/redis install

vim /etc/redis/redis.conf

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize  no
supervised no
pidfile /var/run/redis/redis.pid
loglevel notice
pogfile /data/redis/redis.log
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 /data/redis/
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
maxmemory 495000000
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
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
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-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

启动服务:

nohup /usr/local/redis/bin/redis-server /etc/redis/redis.conf &

标签:11,4.0,no,max,Apline,redis,conf,yes,data
来源: https://blog.csdn.net/ichen820/article/details/120307780

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有