# 使用 `docekt` 配置 `redis` > 使用 `Dockerfile` 进行安装管理 > 基础系统环境 `ubuntu20.04` > 可以使用编译安装以及官方镜像安装的方式来进行安装 > [docker官方文档]( https://docs.docker.com/engine/reference/commandline/run/ ) ## 编译安装 ### 0. 创造`docker`工作目录 ### 1. 获取 `redis` 编译安装文件 前往[`redis`官网](https://redis.io/download/ )去选择下载对应的`redis`包 这里使用的`redis`版本为[`redis-7.0.7`]( https://github.com/redis/redis/archive/7.0.7.tar.gz ) 下载完成后将`redis`放置于服务器的指定目录下 ### 2. `redis.con`配置文件准备 获取`redis`运行必备的配置文件 这里使用`github`上的[`redis.confg`]( https://github.com/redis/redis/blob/7.0/redis.conf ) ### 3. 创建并`Dockerfile`文件 ```shell vim Dockerfile ``` > 在`vim`中输入`i`进入编辑模式,然后开始编辑输入 > 退出编辑则是按`esc`键,然后再输入`:wq`进行保存 > 如果是不保存直接退出则是输入`:q`,输入`:q!`强制不保存退出 ### 4. 编辑`Dockerfile` ```shell # 基础镜像 FROM ubuntu:20.04 MAINTAINER kindring VOLUME "/data" WORKDIR /root # 声明暴露的端口,与 redis.conf 中相似,可以忽略,不会自动开放 EXPOSE 6379 # 创建redis目录,以及安装redis编译环境 使用 && 符号连接命令,以防止镜像膨胀过大 RUN mkdir redis \ && apt-get update \ && apt-get install software-properties-common -y \ && apt-get install gcc -y \ && apt-get install --reinstall make # 把解压好的 redis 文件 copy 进 docker 中,并且切换工作目录 COPY ./redis-7.0.7 ./redis-7.0.7 # 如果没有提前解压好对应的文件的话,可以在使用 RUN tar xvzf redis-7.0.7.tar.gz WORKDIR ./redis-7.0.7 # 开始编译并安装 redis RUN make \ && make install COPY ./redis.conf /etc/redis/redis.conf CMD redis-server /etc/redis/redis.conf ``` ### 5. 构建 `redis` 的 `docker` 镜像 > redis_me 镜像名称 > latest 版本标识号 > 在版本号后面需要接一个点 . ```shell sudo docker build -t redis_me:latest . ``` ### 6. 运行镜像 运行命令需要使用`sudo`来授权 -p 参数来指定端口 服务器监听的端口:docker内软件的端口 -v 授权给 `docker` 可以访问的目录 服务实际目录:docker内的目录 --name 分配一个名称给表格 -it 在没有连接的情况下也保持标准输入打开状态,提供一个伪 bash 的体验 部分参数表格 | 选项 | 选项简写 | 说明 | | --- | --- | --- | | –detach | -d | 在后台运行容器,并且打印容器id。 | | –interactive | -i | 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。 | | –tty | -t | 分配一个伪tty,一般与 -i 连用 | 运行 `docker` ```shell # 在运行后可以通过 name test_redis 来进行管理此镜像 sudo docker run -p 6890:6379 -v /data/redis:/data/redis -v /data/redis/logs:/data/redis/logs --name test_redis -it redis_me:latest ``` ### 7. 测试镜像使用 ```shell ``` ## 通过`redis`官方镜像安装 ### 1. 编辑`Dockerfile` ```dockerfile # 设置基础镜像为redis FROM redis:latest # 设置工作目录 WORKDIR /app # 复制redis.conf配置文件到 工作目录中 COPY redis.conf /app # 启动命令,并设置使用刚刚复制进来的配置文件 CMD ["redis-server", "/app/redis.conf"] ``` ### 2. 准备`redis.conf` ### 3. 构建镜像 > 参考编译安装的部分 ### 4. 运行镜像 > 参考编译安装的部分 ```shell docker run -p 6379:6379 myredis ``` ### 5. 测试 ``` redis-cli -h -p 6379 127.0.0.1:6379> auth 12345678 127.0.0.1:6379> ```