我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker环境怎么构建redis单机容器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker环境怎么构建redis单机容器

本篇内容主要讲解“Docker环境怎么构建redis单机容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker环境怎么构建redis单机容器”吧!

1   背景介绍

Docker环境怎么构建redis单机容器

     用传统部署搭建一套redis环境,中间会消耗太多的重复的工作,导致部署效率非常低。例如:申请虚拟机,安装操作系统,软件包依赖安装和redis应用部署,这个过程中间需要花费不少时间,同时在安装的过程中出现问题也需要花费一些时间去处理。然后传统方式部署方式可移植性相当差。要想将现有redis迁移到新主机,可不是那么容易的事情,可能最简单的方式是tar包过去,但是新主机还是需要安装redis相关的依赖包上去,还需要花些时间去调试redis,中间反反复复的重复工作太浪费时间了。

Docker环境怎么构建redis单机容器

      为了打破传统部署模式带来的效率低下问题,我们采用docker容器部署模式,将重复的工作精简化,也为了方便运维工程师更加快速搭建一套redis环境,redis容器化后能够解决安装过程中出现的重复性繁琐的工作。最终以镜像的存储在镜像仓库中。只要有需求用到redis服务,可以在任何安装有docker软件的主机上面运行redis容器,即可达到需求。Docker容器化后的镜像即可实现即开即用的效果。


2  镜像打包流程

Docker环境怎么构建redis单机容器

Ø  Linux编译环境:准备一台能上外网的linux环境,并安装好docker运行环境。

Ø  基础镜像:在构建应用镜像前置条件,需要准备一套干净的centos基础镜像,然后在这个基础镜像上面去部署redis软件。

Ø  配置标准化:按dockerfile的命令格式来编写,将redis软件安装与redis配置步骤写入到dockerfile文件中。然后准备好运行环境需要的配置文件和对应的运行环境启动脚本,方便在构建应用镜像时将这些文件打包到镜像中。

Ø  构建应用镜像:通过编写dockerfile文件在基础操作系统镜像里面将所要运行的所依赖的软件包和redis软件部署到镜像中,最后通过docker命令将其打成一个新的完整镜像包,下次要用redis就直接下载镜像部署。

Ø启动容器:docker命令启动容器的过程中会将redis服务启动。

在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。这里我们推荐第二种方法用dockerfile文件构建redis镜像。

 Dockerfile基本框架

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

    Dockerfile 的内容分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

操作系统

FROM

按需求选择不同类型的基础操作系统镜像

常用软件

ADD

选择运行所需要的常用软件,如PHP、NGINX,自动设置相应的运行变量

指定用户

USER

设置启动容器的用户,默认是root用户

执行安装

RUN

执行针对需求包编写安装脚本

切换目录

WORKDIR

可以多次切换(相当于cd命令)

环境变量

ENV

镜像中设置环境变量

端口映射

EXPOSE

该指令会将容器中的端口映射成宿主机器中的某个端口

存储使用

VOLUMN

按需定义外挂目录(IO要求高,持久化,宿主机间共享等)

启动运行

ENTRYPOINT

设置指令,指定容器启动时执行的命令,可以多次设置,但是只有最后一个有效

启动运行

CMD

容器启动时需要执行的脚本

4   Redis容器化过程

4.1    Linux编译环境

    准备一台centos7虚拟机,并在这台主机上面安装Docker软件,这里以docker版本1.13.1为例,来介绍如何安装Docker软件步骤。

#下载docker-engine

wget   https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.13.1-1.el7.centos.x86_64.rpm

#下载docker-engine-selinux

wget   https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.13.1-1.el7.centos.noarch.rpm

#安装docker软件依赖文件

yum   install -y libtool-ltdl policycoreutils-python

#先安装docker-engine-selinux,再安装docker-engine-selinux

yum   localinstall docker-engine-selinux-1.13.1-1.el7.centos.noarch.rpm -y

yum   localinstall docker-engine-1.13.1-1.el7.centos.x86_64.rpm –y

#重启docker服务

systemctl   start docker

systemctl   enable docker

下面代表docker软件已经安装成功

Docker环境怎么构建redis单机容器

4.2    获取基础镜像

    可以直接在Linux编译环境下载Centos7基础镜像,要求编译环境是要能上外网连上hub.docker.com外网镜像仓库来下载镜像,下面输入docker search centos可以看到外网docker镜像仓库中有很多centos镜像。可以通过docker pull openshift/base-centos7命令来下载centos基础镜像。

 Docker环境怎么构建redis单机容器

    用docker pull已经将镜像下载到本地linux主机上面,接下来镜检查openshift/base-centos7镜像完整性,只要docker run命令来启动这个镜像,我们看到这个容器已经正常启起来。验证表明这个镜像是正常的。

 Docker环境怎么构建redis单机容器

    下面是docker日常用到的一些简单命令:

下载centos镜像

docker   pull openshift/base-centos7

查看镜像

docker   images

删除镜像

Docker   rmi <IMAGE ID >

运行docker容器

docker   run -itd  openshift/base-centos7 echo   "hello word"

启停docker容器

docker   start <CONTAINER ID >

Docker   stop <CONTAINER ID >

Docker   kill <CONTAINER ID >

进入docker容器中

Docker   exec –it <CONTAINER ID > bash

Docker   attach <CONTAINER ID >

删除容器

Docker   rm <CONTAINER ID >

4.3    创建dockerfile构建redis环境

1、编写redis打包镜像的dockerfile步骤

Docker环境怎么构建redis单机容器

2、dockerfile编程

#引用centos基础镜像

FROM   openshift/base-centos7

MAINTAINER   jaymarco

#安装redis依赖包与redis软件

RUN   yum install gcc  gcc-c++ make  cmake    tar  python-setuptools -y   && \

curl   -fL http://download.redis.io/releases/redis-3.2.3.tar.gz | tar xzf - -C /tmp   &&\

cd   /tmp/redis-3.2.3 && \

make   PREFIX=/usr/local/redis install && \

mkdir   -p /usr/local/redis/{bin,etc,var,logs} && \

cp   -af   class="lazy" data-src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-server}   /usr/local/redis/bin/ && \

cp   -a redis.conf /usr/local/redis/etc/    &&\

cp   -a sentinel.conf /usr/local/redis/etc/ &&\

echo   "export PATH=/usr/local/redis/bin:\$PATH" >   /etc/profile.d/redis.sh && \

source   /etc/profile.d/redis.sh && \

groupadd   -r redis &&\

useradd   -g redis  redis && \

chmod   -R 755 /usr/local/redis/etc && \

yum   clean all && \

rm   -rf /tmp/redis-3.2.3 &&\

/bin/cp   /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\

echo   'Asia/Shanghai' >/etc/timezone

#redis参数优化

RUN   sed -e 's/^bind 127.0.0.1/#bind 127.0.0.1/' \

-e   's/#   save ""/save   ""/'   \

-e   's/save 900 1/#save 900 1/' \

-e   's/save 300 10/#save 300 10/' \

-e   's/save 60 10000/#save 60 10000/'  \

-e   's/appendonly no/appendonly yes/' \

-e   's/# maxmemory-policy noeviction/maxmemory-policy noeviction/' \

-e   '481i\requirepass Redis@2017' \

-e   '539i\maxmemory 2147483648' \

-i   /usr/local/redis/etc/redis.conf && \

sed   "s|dir ./|dir /usr/local/redis/dumpdb/|"  -i /usr/local/redis/etc/redis.conf   && \

sed   "s|logfile ""|logfile   "/usr/local/redis/logs/redis.log"|"  -i    /usr/local/redis/etc/redis.conf

#容器端口映射

EXPOSE   6379

#启动redis

ENTRYPOINT   ["/usr/local/redis/bin/redis-server", "/usr/local/redis/etc/redis.conf"]

4.4    构建redis镜像

    通过docker build执行创建,-t参数指定镜像名称,来构建redis镜像

    docker build -t redis:v3.2.3 .

    执行中会有类似输出: 

Docker环境怎么构建redis单机容器

执行完毕后,输入docker images可以查看当前本机的镜像,如下图,可以看到新增的镜像

Docker环境怎么构建redis单机容器

1.1    启动redis容器

    Redis是有状态数据,我们将redis的数据文件存储到本地宿主机,只需要在启动redis容器的时候将本地目录以卷的方式挂载到容器中。

    在本地宿主机创建一个redis存储目录

    mkdir –p /home/redisdump

  然后启动redis容器

docker run -itd --name redis

-v   /home/redisdump:/usr/local/redis/dumpdb \

-p   6379:6379 redis:v3.2.3

我们看到容器已经正常启动,并能查看到它正在运行的进行信息。

Docker环境怎么构建redis单机容器

1   验证redis容器

    启动redis容器的时候已将redis容器的6379端口映射到外面的宿主机6379端口,说明我们能够通过宿主机地址加上6379就能够访问redis容器里面的数据。

    现在我们来测试一下

Docker环境怎么构建redis单机容器

    现在宿主机上模拟插入一条数据,然后返回到容器查看数据是否存在

Docker环境怎么构建redis单机容器

    进入容器我们查看数据是有的,说明我们的镜像是成功的。

Docker环境怎么构建redis单机容器

到此,相信大家对“Docker环境怎么构建redis单机容器”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker环境怎么构建redis单机容器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker环境怎么构建redis单机容器

本篇内容主要讲解“Docker环境怎么构建redis单机容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker环境怎么构建redis单机容器”吧!1 背景介绍 用传统部署搭建
2023-06-04

基于docker构建中间件容器应用环境

1 背景介绍为了方便开发人员对自己的应用代码进行镜像封装,需要提供一个中间件基础镜像让他们直接在上面封装应用镜像,然后在docker编译服务器上面按镜像打包流程了封装镜像,采用流水式的方式完成所有操作。今天给大家介绍一下如何将传统nginx
2023-06-04

Docker宿主机环境怎么搭建

这篇文章主要介绍“Docker宿主机环境怎么搭建”,在日常操作中,相信很多人在Docker宿主机环境怎么搭建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker宿主机环境怎么搭建”的疑惑有所帮助!接下来
2023-06-04

Linux环境下怎么使用Docker搭建Jenkins容器

这篇文章主要讲解了“Linux环境下怎么使用Docker搭建Jenkins容器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux环境下怎么使用Docker搭建Jenkins容器”吧!需
2023-07-02

怎么使用Docker容器搭建android编译环境

本篇内容介绍了“怎么使用Docker容器搭建android编译环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 部署容器1.1 手动部署
2023-07-02

怎么用docker-composer快速构建nginx+php环境

这篇文章主要介绍“怎么用docker-composer快速构建nginx+php环境”,在日常操作中,相信很多人在怎么用docker-composer快速构建nginx+php环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
2023-06-26

docker环境搭建与容器常用指令是什么

本文小编为大家详细介绍“docker环境搭建与容器常用指令是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker环境搭建与容器常用指令是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Docke
2023-07-02

怎么构建自己的docker容器镜像

本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建
2023-07-05

怎么使用Docker容器部署rocketmq单机

这篇文章主要介绍“怎么使用Docker容器部署rocketmq单机”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Docker容器部署rocketmq单机”文章能帮助大家解决问题。查询镜像do
2023-06-29

怎么使用Google ContainerTools容器构建docker镜像

本篇内容介绍了“怎么使用Google ContainerTools容器构建docker镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插件
2023-06-29

怎么利用trap在docker容器关闭前执行环境

本篇内容主要讲解“怎么利用trap在docker容器关闭前执行环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用trap在docker容器关闭前执行环境”吧!当一个运行中的容器被终止时,
2023-06-22

云主机服务器环境怎么搭建

搭建云主机服务器环境可以按照以下步骤进行操作:1.选择云服务提供商:选择一个可靠的云服务提供商。2.注册账号:根据所选的云服务提供商,在官网注册一个账号。3.选择云服务器实例:登录云服务提供商的控制台,选择合适的云服务器实例,包括计算能力、
2023-09-08

java主机服务器环境怎么搭建

搭建 Java 主机服务器环境需要以下步骤:1. 安装 Java 开发工具包(JDK):从官方网站下载适合您操作系统的 JDK,然后按照安装向导进行安装。2. 安装应用服务器:选择一种 Java 应用服务器,如 Tomcat、Jetty、J
2023-06-07

怎么使用Docker Compose构建复杂的多容器App

这篇文章主要介绍“怎么使用Docker Compose构建复杂的多容器App”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Docker Compose构建复杂的多容器App”文章能帮助大家解
2023-06-30

云服务器怎么搭建python环境变量包内容

以下是一个使用Python编写Python环境变量包内容的示例代码:```pythonpackagemainimport"fmt"if(pymediainfmt.roma("example.yourservername")){pymedia.setservername("localhost");pymedia.start();}fmt.fprintf(pymedia.inputf
2023-10-26

php主机租用服务器环境怎么搭建

要搭建PHP主机租用服务器环境,需要按照以下步骤:1. 选择服务器操作系统:通常选择Linux操作系统,如CentOS、Ubuntu等。2. 安装Web服务器:常用的Web服务器是Apache和Nginx,需要在服务器上安装其中一个或两个。
2023-06-04

美国php主机服务器环境怎么搭建

搭建美国php主机服务器环境需要以下步骤:1.选择操作系统:可以选择Linux或Windows操作系统,推荐使用Linux系统,如CentOS、Ubuntu等。2.安装Web服务器:在Linux系统下,可以选择Apache或Nginx作为W
2023-06-06

ZooKeeper在单机和集群环境下怎么安装搭建及使用

这篇文章主要讲解了“ZooKeeper在单机和集群环境下怎么安装搭建及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ZooKeeper在单机和集群环境下怎么安装搭建及使用”吧!1、下载首
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录