zoukankan      html  css  js  c++  java
  • docker安装redis

    拉取docker hub中官方提供的redis:6.2.0镜像,执行docker run -it redis:6.2.0 bash命令启动。执行docker ps -a命令,查看容器id,执行docker exec命令进入容器中,再用ps、netstat命令查看进程,发现基本上什么命令也没有预装,安装好procps、net-toos后,再用ps、netstat命令查看进程,发现没有redis进程启动。再执行find / -name redis*命令,找下redis相关文件在哪个目录中。

    root@d91297304d5c:/data# find / -name redis*
    /usr/local/bin/redis-server
    /usr/local/bin/redis-check-aof
    /usr/local/bin/redis-benchmark
    /usr/local/bin/redis-check-rdb
    /usr/local/bin/redis-sentinel
    /usr/local/bin/redis-cli

    发现只有命令行客户端,没有redis的配置文件。

    依赖docker hub中官方的redis:6.2.0构建自己的镜像,Dockerfile内容如下:

    FROM redis:6.2.0
    RUN apt-get update && apt-get install -y vim procps lsof curl wget net-tools iputils-ping telnet lrzsz 
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    WORKDIR /app
    CMD redis-server /conf/redis.conf

    构建脚本build.sh,内容如下:

    #/bin/sh
    docker build -t my_redis:6.2.0 -f ./redis_dockerfile .

    把build.sh放在和Dockerfile同一目录下,执行build.sh,得到my_redis:6.2.0。redis:6.2.0大小在105M左右,my_redis:6.2.0大小在166M左右。

    在mac电脑上,用自建的docker network n1,run命令如下

    docker run -d --network n1 -p 6380:6380 -v /Users/shengruikou/Desktop/redis:/conf my_redis:6.2.0

    启动后,用docker ps -a --no-trunc命令查看,会发现COMMAND一列的值是docker-entrypoint.sh /bin/sh -c 'redis-server /conf/redis.conf',看起来容器正常启动了。

    登进去容器,用ps、netstat、lsof命令查看进程及监听端口,发现有进程启动,且监听6380端口。执行redis-cli -p 6380命令,用redis命令行客户端连接redis服务,输入ping后回车,会返回PONG,容器内redis服务正常启动。

    在宿主机,执行redis-cli -p 6380命令,

    宿主机的redis-cli命令客户端是怎么来的呢?

    第一种方式:下载redis-6.2.0.tar.gz,解压,在主目录中执行make命令,之后就可以在新生成的src目录中就可以看到包括redis-cli在内的命令行客户端了。

    第二种方式:在启动容器时,用-v参数把/usr/local/bin目录映射出来。此时run命令为

    docker run -d --network n1 -p 6380:6380 -v /Users/shengruikou/Desktop/redis:/conf -v /Users/shengruikou/Desktop/redis/src:/usr/local/bin my_redis:6.2.0

  • 相关阅读:
    overflow:hidden三个作用
    git提交代码步骤以及创建issue事项
    Vue3.0中setup函数的使用
    样式rpx
    js函数
    数据类型
    进制转换
    事件绑定
    微信小程序基础
    “AI+”改变世界!不同领域的5大人工智能趋势
  • 原文地址:https://www.cnblogs.com/koushr/p/14560872.html
Copyright © 2011-2022 走看看