文章来源:公众号-智能化IT系统。
一. DOCKER介绍
Docker简介
(1)Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源。
(2)Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
Docker 的优点
(1)简化程序
过去运维工程师部署生产环境时候需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。同时Docker 让运维工程师可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化,Docker改变了虚拟化的方式。
(2)简化部署
Docker镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
(3)节省开支
云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
二. NOSQL介绍
NoSQL简介
对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗费时间和资源,尤其是数据是需要从磁盘里去检索。
NoSQL数据库存储原理非常简单,不存在繁杂的关系链,比如mysql查询的时候,需要找到对应的库、表(通常是多个表)以及字段。
NOSQL有如下两点主要优势:
(1)NoSQL数据可以存储在内存里,查询速度非常快。
(2)NoSQL因为没有复杂的数据结构,扩展非常容易,能轻松实现分布式。
常见的nosql数据库
k-v型:memcached、redis,适合储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。
文档型:mongodb,将数据以文档的形式储存。每个文档都是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储。
三. Redis介绍
Redis 简介
Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis与其他 key - value 缓存产品有以下三个特点:
(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等多种数据结构的存储。
(3)Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
(2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets数据类型操作。
(3)原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
(4)丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
四. Docker中自定义部署Redis
部署redis镜像方法有多种,可以直接拉取官网redis镜像使用,也可根据自己需求自定义部署redis来制作镜像。下面介绍为自定义部署redis镜像。
本案例中使用的环境:centos7.4+redis 4.0.2
1、centos7.4配置固定IP
#vi/etc/sysconfig/network-scripts/ifcfg-enp3s0
2、下载doker源
#Curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
(先下载一个docker源,因为yum list可以看出源自带的docker版本比较老。)
3、部署安装docker(docker分了商业版和社区版,安装社区版。)
#yumlist|grep docker 查看下有哪些可以安装的docker
#yuminstall -y docker-ce
也可以选择下载rpm包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
下载完后yum安装
#yuminstall -y docker-ce-xxxx.rpm
4、安装完后启动docker,并且查看是否有docker进程。
#systemctlstart docker.service
#psaux|grep docker
5、配置docker加速器,配置了加速器那你就可以国内拉取镜像,速度快。
新增一个配置文件vi/etc/docker/daemon.json
加入如下内容:
{
"registry-mirrors":["https://*********.mirror.aliyuncs.com"]
}
括号里的地址要去阿里云官网注册。配置完之后重启docker。
6、拉取docker所需的官网centos镜像,(此镜像是精简版镜像)
#dockerpull centos
其中TAG 表示镜像标签,IMAGE ID表示镜像ID,CREATED表示创建的一个时间。
7、把镜像把centos启动为容器,然后进入容器里安装gcc-c++编译环境、安装wget下载命令、安装net-tools、安装编译make。
(1)#dockerrun –itd centos
(docker run -itd centos //把镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面。用docker ps 查看当前运行的镜像)
(2)#docker exec –it XXXX bin/bash &nbs