• Docker学习(七)实战


    Docker学习(七)实战 - 构建REDIS镜像

    此处输入图片的描述


    前言

    官网已提供了Redis的基础镜像,在生产环境尽量使用官网提供的基础镜像,这篇文章主要是为了综合使用一下Dockerfile相关命令,让我们理解更加深入一些

    实战

    前期准备

    准备Redis源文件包
    配置文件

    cd /usr/local/docker
    mkdir docker-redis
    cd docker-redis
    

    将我们使用到的源文件上传到当前目录

    此处输入图片的描述

    编写Dockerfile

    vim Dockerfile 增加下如下内容

    FROM centos:centos7
    RUN ["yum" , "install" , "-y" ,"gcc","gcc-c++","net-tools","make"]
    WORKDIR /usr/local
    ADD redis-4.0.14.tar.gz .
    WORKDIR /usr/local/redis-4.0.14/src
    RUN make && make install
    WORKDIR /usr/local/redis-4.0.14
    ADD redis-7000.conf .
    EXPOSE 7000
    CMD ["redis-server","redis-7000.conf"]
    
    

    此处输入图片的描述

    Dockerfile解读

    1. 设置基准镜像centos
    2. 增加RUN命令,构建时运行指令 yum install -y gcc gcc-c++ net-tools make
    • 安装 gcc gcc-c++ 两个组件对redis源代码进行编译
    • net-tools网络工具的安装包
    • make安装程序的必备组件
    1. 切换容器的目录到 /usr/local
    2. 解压redis-4.0.14.tar.gz到容器目录/usr/local
    3. 进入解压完的源代码目录
    4. 对源代码目录使用gcc编译并进行安装
    5. 切换工作目录到/usr/local/redis-4.0.14
    6. redis-7000.conf到当前的工作目录
    7. 暴露容器内部的7000端口对宿主机
    8. 运行命令 redis-server redis-7000.conf启动 Redis

    打包镜像

    docker build -t albk.tech/docker-redis .

    此处输入图片的描述

    查看镜像

    docker images

    此处输入图片的描述

    后台运行镜像

    docker run -p 7000:7000 albk.tech/docker-redis

    此处输入图片的描述

    查看7000端口是否可用

    netstat -tulnp

    此处输入图片的描述

    进入redis容器

    docker ps 
    docker exec -it f80c151f5d2f  /bin/bash
    

    此处输入图片的描述

    redis-7000.conf已按我们的脚本打到REDIS的安装目录中

    总结

    到这里我们已经打包好一个自己的redis镜像了, 在实际中工作没有必要这样做,官方早已提供好相关的镜像了, 本文只是对前面Dockerfile命令和docker命令的综合应用

    附录

    实际环境中启动redis

    docker pull redis
    docker run -d redis
    这两行命令就已经可以创建一个redis容器,如果对版本有要求,可以指定对应版本的tag即可

    写在最后

    本文中所需要的安装包已经打包好,百度云分享,可以关注公号albk,回复指令"docker redis"获取,相关文章会首发公众号,关注后可以获取大量学习视频

    期望热爱技术的你一起来交流,获取最新资料和学习资源,可以关注公众号albk, 个人博客 !

  • 相关阅读:
    k8s 静态pod
    k8s pod资源配额对调度的影响
    mysql分库,动态数据库切换
    【转】 一个C#中的webservice的初级例子(二)
    【转】UpdatePanel 简单实例
    Linux远程mount文件系统
    【转】一个C#中webservice的初级例子(一)
    javascript读写文件
    SilverLight插件检测
    C#读写共享文件夹
  • 原文地址:https://www.cnblogs.com/albk/p/12219945.html
Copyright © 2020-2023  润新知