美文网首页
在Docker中运行Reids服务

在Docker中运行Reids服务

作者: wwmin_ | 来源:发表于2019-04-11 23:40 被阅读0次

简单运行redis

docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes

获取 redis 镜像

docker search redis
docker pull redis:latest
docker images

创建容器


创建宿主机 redis 容器的数据和配置文件目录

# 这里我们在 /home/docker 下创建
mkdir /home/docker/redis/config
cd /home/docker/redis/config
touch redis.conf
vim redis.conf

获取 redis 的默认配置模版

这个时候直接去网上找个redis.conf样例
修改一下其中的配置
bind
protected-mode
requirepass

daemonize yes 千万要注释掉,不然起不来docker容器

protected-mode 是在没有显示定义 bind 地址(即监听全网断),又没有设置密码 requirepass
时,protected-mode 只允许本地回环 127.0.0.1 访问。
也就是说当开启了 protected-mode 时,如果你既没有显示的定义了 bind 监听的地址,同时又没有设置 auth 密码。那你只能通过 127.0.0.1 来访问 redis 服务。

创建并运行一个名为 redis 的容器

docker run -d \
-p 6379:6379 \ # 端口映射 宿主机:容器
-v /mnt/redis/data:/etc/redis/data:rw \ # 映射数据目录 rw 为读写
-v /mnt/redis/config/redis.conf:/etc/redis/redis.conf:ro \ # 挂载配置文件 ro 为readonly
--privileged=true \ # 给与一些权限
--name redis \ # 给容器起个名字
redis redis-server /etc/redis/redis.conf # deamon 运行容器 并使用配置文件启动容器内的 redis-server 

查看活跃的容器

# 查看活跃的容器
docker ps
# 如果没有 redis 说明启动失败 查看错误日志
docker logs redis
# 查看 redis 的 ip 挂载 端口映射等信息
docker inspect redis
# 查看 redis 的端口映射
docker port redis

外部访问 redis 容器服务

# redis-cli 访问
docker run -it --link redis:redis --rm redis redis-cli -h redis -p 6379
# -it 交互的虚拟终端
# --rm 退出是删除此容器

或者使用 shell 登录容器内操作

docker exec -it redis bash
redis-cli

配置完成

主从配置

新建容器 redis-slave
查看 redis master 的内部 ip

docker inspect redis #Networks
可以得到 redis master 的 ip 地址
"NetworkSettings": {
            "Ports": {
                "6379/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "6379"
                    }
                ]
            },
            ...
            "Gateway": "192.168.0.1",
            ...
            "IPAddress": "192.168.0.3",#ip
            ...
            "Networks": {
                "bridge": {
                    ...
                    "Gateway": "192.168.0.1",
                    "IPAddress": "192.168.0.3",#ip
                    ...
                }
            }
        }


修改 redis-slave 的配置文件
# 主地址
slaveof master-ip master-port
# 主认证
masterauth

重启 redis-slave

docker restart redis-slave

登录 redis master 使用 info 命令查看从的状态

如果配置不成功记得检查 redis master 的 bind 和 protected-mode 的设置,看下有没有监听内网地址,否则 redis-slave 没办法通过 redis master 的地址做数据同步

相关文章

  • 在Docker中运行Reids服务

    简单运行redis 获取 redis 镜像 创建容器 创建宿主机 redis 容器的数据和配置文件目录 获取 re...

  • docker安装

    安装docker 运行docker 系统中已经安装好了docker服务,我们需要运行docker服务 设置开机启动...

  • 在docker中运行mysql服务

    前言:当希望在本地上配置容器中的mysql时,发现一个问题,本地需要完整的配置文件目录,如果本地是空目录,那么容器...

  • jenkins job未按设置的时间执行

    背景:我们使用docker部署环境,把服务器的jenkins挂载到docker容器中运行。在jenkins中设置了...

  • 在Docker容器中操作Docker (dind)

    什么是DockerInDocker 就是在Docker容器中再次运行一个Docker服务. 在一个容器中操作Doc...

  • 05 - Docker Machine 概述

    Docker Machine可以用来: 在Mac或Windows系统中安装和运行Docker服务 提供和管理多个远...

  • Docker入门

    Linux安装Docker 安装docker本身 运行非root用户运行docker 启动docker服务 设置开...

  • 理工项目 服务器部署手册

    验证服务器docker 是否正常运行 命令 docker ps 检查运行中的容器 异常情况返回image.png ...

  • Docker中运行Redis服务

    非常简单,没有任何修饰,redis是使用一个连接附加到一个web应用程序。 创建一个redis docker容器 ...

  • 使用 Docker 运行 Nginx 服务

    在 Docker 容器中运行 Nginx 服务(mynginx): 将容器中的 Nginx 配置文件拷贝到当前目录...

网友评论

      本文标题:在Docker中运行Reids服务

      本文链接:https://www.haomeiwen.com/subject/qupfwqtx.html