docker安装redis
2019-03-25 15:40
423 查看
- redis官网:https://redis.io
redis docker官网:https://hub.docker.com/_/redis/ - 编写Dockerfile文件
FROM alpine:latest MAINTAINER menard 2019-03-25 # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added RUN addgroup -S redis && adduser -S -G redis redis RUN apk add --no-cache \ # grab su-exec for easy step-down from root 'su-exec>=0.2' \ # add tzdata for https://github.com/docker-library/redis/issues/138 tzdata ENV REDIS_VERSION 4.0.14 ENV REDIS_DOWNLOAD_URL http://download.redis.io/releases/redis-4.0.14.tar.gz ENV REDIS_DOWNLOAD_SHA 1e1e18420a86cfb285933123b04a82e1ebda20bfb0a289472745a087587e93a7 # for redis-sentinel see: http://redis.io/topics/sentinel RUN set -ex; \ \ apk add --no-cache --virtual .build-deps \ coreutils \ gcc \ linux-headers \ make \ musl-dev \ ; \ \ wget -O redis.tar.gz "$REDIS_DOWNLOAD_URL"; \ echo "$REDIS_DOWNLOAD_SHA *redis.tar.gz" | sha256sum -c -; \ mkdir -p /usr/src/redis; \ tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1; \ rm redis.tar.gz; \ \ # disable Redis protected mode [1] as it is unnecessary in context of Docker # (ports are not automatically exposed when running inside Docker, but rather explicitly by specifying -p / -P) # [1]: https://github.com/antirez/redis/commit/edd4d555df57dc84265fdfb4ef59a4678832f6da grep -q '^#define CONFIG_DEFAULT_PROTECTED_MODE 1$' /usr/src/redis/src/server.h; \ sed -ri 's!^(#define CONFIG_DEFAULT_PROTECTED_MODE) 1$!\1 0!' /usr/src/redis/src/server.h; \ grep -q '^#define CONFIG_DEFAULT_PROTECTED_MODE 0$' /usr/src/redis/src/server.h; \ # for future reference, we modify this directly in the source instead of just supplying a default configuration flag because apparently "if you specify any argument to redis-server, [it assumes] you are going t o specify everything"# see also https://github.com/docker-library/redis/issues/4#issuecomment-50780840 # (more exactly, this makes sure the default behavior of "save on SIGTERM" stays functional by default) \ make -C /usr/src/redis -j "$(nproc)"; \ make -C /usr/src/redis install; \ \ rm -r /usr/src/redis; \ \ runDeps="$( \ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | tr ',' '\n' \ | sort -u \ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ )"; \ apk add --virtual .redis-rundeps $runDeps; \ apk del .build-deps; \ \ redis-server --version COPY redis.conf /data/redis.conf RUN chown redis:redis -R /data WORKDIR /data EXPOSE 6379 ENTRYPOINT redis-server /data/redis.conf
- 构建成镜像
docker build -t menard/alpine-redis:4.0.14 .
- 编写docker-compose.yml文件
version: '2' services: redis: image: "menard/alpine-redis:4.0.14" hostname: redis container_name: redis ports: - 6379:6379 volumes: - /workspace/redis/:/data/ environment: - TZ=Asia/Shanghai restart: always #command: "redis-server /data/redis.conf"
- cd /workspace/redis/ ,vim redis.conf编辑文件后修改权限,chown 100:101 redis.conf
bind 0.0.0.0 protected-mode no port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 #daemonize yes supervised no loglevel notice logfile "/data/redis_error.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 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 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
- docker-compose up启动容器,发现启动后容器又关掉了,查看日志无报错。
- 把配置文件redis.conf的daemonize yes注释掉,这个是开启守护进程的,容器不能用这个。
- 重新启动后无报错。
相关文章推荐
- Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
- Ubuntu下用docker安装redis镜像和使用redis容器分享
- docker 安装redis第三方集群方案 codis
- Docker:Centos 安装Redis
- Docker-compose搭建ELK+head+redis环境(1)-- elasticsearch安装
- docker系列二: docker安装Redis
- 用ubuntu安装redis的docker镜像
- docker安装redis 指定配置文件且设置了密码
- centos 7使用docker安装lnmp和redis环境
- Docker安装Redis
- Docker + Ubuntu 安装 nodejs,redis 生成新镜像
- docker - 容器里安装redis
- Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
- Docker安装Redis数据库
- docker安装redis
- Docker-compose搭建ELK+head+redis环境(2)-- head插件安装
- docker安装redis
- Docker安装MySQL Tomcat Python Redis MongoDB Apache
- Linux服务器安装Docker版redis
- docker安装gitlab,redis,postgresql搭建代码托管环境