# 查看镜像 $ 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



