docker案例 -- redis

🧡docker案例redis

🥚1、redis 通过docker直接拉取

# 查看镜像 
$ docker images 

# 查看镜像创建的容器(只看运行的)
$ docker ps 

# 直接拉取  版本为6.2.6 
$ docker search redis # (搜索)
$ docker pull redis 

# 创建一个容器 并进入
$ docker run -it redis /bin/bash
root@0a7d004e2065:/data#
$ docker run -itd --name redis6 -p 6379:6379 redis # 设置容器名称(--name)以及映射端口号(-p)

# 创建容器  -v 挂载点
$ docker run -itd -p 6379:6379 -v ~/data:/data redis
301a8f610b98664db4790ba7222497f5e1f5771b3b0f7696eb2a925cddf8286f
# 查看创建的容器
$ docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                       NAMES
301a8f610b98   redis     "docker-entrypoint.s…"   8 seconds ago   Up 7 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   exciting_dubinsky

# 进入容器并且添加数据
$ docker exec -it 30 /bin/bash  # 30为容器id前两位
root@301a8f610b98:/data# 
$ redis-cli # 执行客户端
127.0.0.1:6379> 
$ set age 19 # 添加数据

在这里插入图片描述

# 配置服务
# 下载配置文件  这个是redis 7.0.xx配置文件与6.2.6不匹配
$ wget http://download.redis.io/redis-stable/redis.conf
# 下载6.2.6的 复制里面的redis.conf 
$ wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# 创建一个6379.conf 修改一些配置
$ vim 6379.conf

include redis.conf 
bind 0.0.0.0
protected-mode no
daemonize no
pidfile /var/run/redis_6379.pid
logfile "6379.log"
dbfilename 6379.rdb
requirepass 123456

# 配置完以后创建容器
$ docker run -itd -p 6379:6379 --name redis -v ~/redis.conf:/data/redis.conf -v ~/6379.conf:/data/6379.conf -v ~/redis/data:/data redis redis-server 6379.conf
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                       NAMES
a74572ac1382   redis     "docker-entrypoint.s…"   7 minutes ago   Up 7 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis

# 连接本机redis
$ docker run -it --rm redis redis-cli -h 192.168.118.129 -p 6379 -u 123456

🥚2、redis dockerfile

# 创建目录redis7 准备文件
$ mkdir redis7
$ cd redis7
$ mkdir data
$ vim dockerfile


# 下载redis 7.0.0版本 通过终端直接上传
# 解压
$ tar zxvf redis-7.0.0.tar.gz
$ ls
dockerfile  redis-7.0.0  redis-7.0.0.tar.gz

# 进入 redis-7.0.0 执行编译
$ cd redis-7.0.0
$ make && make install
  
# 复制文件到data目录下 并删除多于的文件 
$ cp /redis-7.0.0/src/* data/ -r 
$ cd data # 后面命令都是在data目录下的执行的
$ rm *.h *.d *.o *.c  
$ rm Makefile valgrind.sup Makefile.dep
$ rm -rf modules/
$ ls
commands         redis-benchmark  redis-check-rdb  redis-sentinel  redis-trib.rb
mkreleasehdr.sh  redis-check-aof  redis-cli        redis-server

# 复制redis.conf  6379.conf
$ cp ~/redis7/redis-7.0.0/redis.conf .
$ cp ~/6379.conf .
$ ls 
6379.conf  mkreleasehdr.sh  redis-check-aof  redis-cli   redis-sentinel  redis-trib.rb
commands   redis-benchmark  redis-check-rdb  redis.conf  redis-server
# 回到redis7 目录 编写dockerfile
from ubuntu
copy data /data
Env PATH $PATH:.:/data
workdir /data
expose 6379
cmd ["redis-server","redis.conf"]
# 在redis7 创建镜像
$ docker build -t redis:7.0.0 .
Sending build context to Docker daemon  217.5MB
Step 1/6 : from ubuntu
 ---> ba6acccedd29
Step 2/6 : copy data /data
 ---> bbb7b3f1298b
Step 3/6 : Env PATH $PATH:.:/data
 ---> Running in 9665d3239369
Removing intermediate container 9665d3239369
 ---> 14a180faa3e3
Step 4/6 : workdir /data
 ---> Running in 788666dcb1d4
Removing intermediate container 788666dcb1d4
 ---> fd2a3c852ce0
Step 5/6 : expose 6379
 ---> Running in 788c24851c4f
Removing intermediate container 788c24851c4f
 ---> 83f046202a8e
Step 6/6 : cmd ["redis-server","redis.conf"]
 ---> Running in b69fa02ae47b
Removing intermediate container b69fa02ae47b
 ---> 40c090a83eba
Successfully built 40c090a83eba
Successfully tagged redis:7.0.0

# 创建容器 发现容器没有在运行
$ docker run -itd -P redis:7.0.0 
$ docker ps

在这里插入图片描述

查看日志,发现是编译新的在旧的服务器上运行不起来,需要安装一个模块,因为不好安装 所以选择下载新的服务器ubuntu22.04
最新的redis7需要使用ubuntu22.04
$ docker logs 4  # 4为容器id第一位
$ docker pull ubuntu:22.04  # 下载新版ubuntu

在这里插入图片描述

下载新版的ubuntu,dockerfile文件也要修改一下

/home/lyear/redis7/dockerfile

from ubuntu:22.04
Run apt update
Run apt upgrade -y
Run apt install gcc make -y
copy data /data
Env PATH $PATH:.:/data
workdir /data
Expose 6379
Cmd ["redis-server","redis.conf"]

复制redis.conf和编写6379.conf

$ cp ~/redis-7.0.0/redis.conf ~/redis7/data
$ vim ~/redis7/data/6379.conf

6379.conf的内容:

include redis.conf
bind 0.0.0.0
protected-mode no
daemonize no
pidfile /var/run/redis_6379.pid
logfile "6379.log"
dbfilename 6379.rdb
requirepass 123456

构建镜像

$ docker build -t redis:7.0.0 .

在这里插入图片描述

创建容器

$ docker run -itd -p 6379:6379 redis:7

在这里插入图片描述

客户端登录

$ docker run -it --rm redis:7 redis-cli -h 192.168.118.129 -p 6379 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值