zoukankan      html  css  js  c++  java
  • 解决创建Redis容器没有conf配置文件

    序言

    这篇文章没有什么知识点,只是为了新伙伴少踩点坑

    1. 问题重现

    创建容器

    2. 解读参数

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -p: 端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --ip: 为容器制定一个固定的ip

    --net: 指定网络模式

    3. 进入容器查看redis.conf文件

    发现是并没有redis.conf文件的,那么这个时候就是新手踩坑阶段了,因为没有系统的学习docker所以会花费很多时间

    2. 解决问题

    没有配置文件这件事呢!那是因为redis容器里边的配置文件是需要在创建容器时映射进来的

    那么就需要删除我们之前创建好的容器,在删除前需要先停止容器后才可以删除

    停止容器:docker container stop redis-test

    删除容器:docker container rm redis-test

    1. 开始重新创建redis容器

    docker run -itd --name redis-slave -v /usr/local/redis/redis.conf:/etc/redis.conf -v /root/usr/local/redis/data:/data --net mynetwork -p 6381:6379 --ip 172.10.0.3 redis

    参数解释:

    -v /usr/local/redis/redis.conf:/etc/redis.conf:映射配置文件

    -v /root/usr/local/redis/data:/data:映射数据目录

    那么这个时候就有redis配置文件了

    3. 搭建容器并挂载外部配置

    上边是在我宿主机有redis的情况下的,那么下来说宿主机没有redis的情况

    这里说的映射其实就是挂载外部配置和数据安装

    1. 创建docker统一的外部配置文件

    mkdir -p docker/redis/

    2. 在conf目录创建redis.conf的配置文件

    touch /docker/redis/conf/redis.conf

    3. redis.conf文件的内容需要自行去下载,网上很多

    4. 创建启动容器,加载配置文件并持久化数据

    docker run -d --privileged=true -p 6379:6379 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --name redis-test redis redis-server /etc/redis/redis.conf --appendonly yes

    参数说明:

    --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

    -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:映射配置文件

    -v /docker/redis/data:/data:映射数据目录

    redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程

    --appendonly yes:开启数据持久化

  • 相关阅读:
    架构设计
    git 常用命令
    C# 加载C++的dll
    windows 服务部署管理
    wpf 模板绑定控件属性
    golang开启module模式 go mod
    使用docker安装redis
    使用docker安装elasticsearch
    使用docker安装etcd
    使用docker安装mysql5.7
  • 原文地址:https://www.cnblogs.com/fan-1994716/p/14968515.html
Copyright © 2011-2022 走看看