试用开源软件的优劣势

由于现在容器化的热度,大部分软件都有docker official镜像,那么使用docker就是试用软件很好的方法:

优势:

1、可以免去安装部署的过程。

2、不会对当前系统环境产生任何影响。

3、占用资源极少。

不太像劣势的劣势:

1、不能用来进行性能测试。不过性能测试本身对硬件环境和软件环境都有一定要求,即使自己部署依旧需要较多配置和准备。

2、少量软件的官方镜像版本并不能跟上软件版本更新。(例如ES)

3、少量软件需要进行奇怪的设置,但是这些大部分在镜像主页都有说明。(还是ES)

例:测试ES的各种接口

1、去dockerhub官网找到ES的镜像,https://hub.docker.com/_/elasticsearch/

1.5、如果dockerhub下载镜像太慢,可以使用阿里云加速dockerhub的功能(反正免费)

1.5.5、你要用gcr的镜像?最简单的方法翻X和人肉翻X选一个,都不行可以考虑通过dockerhub下载gcr的镜像,不过本文不涉及k8s安装部署,所以不提这部分了。

2、找到pull command:docker pull elasticsearch

3、执行pull command。

4、看看镜像的使用说明(主要是找到启动container的命令)。

docker run -d elasticsearch

5、启动镜像。

6、使用。

#上面是大部分软件的正常过程,应该已经结束了,但是ES有些奇怪的问题:

7、我要干的工作是测试ES的java接口,所以在java工程中加入了以下配置

<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.6.10</version>
</dependency>

8、最早我用的是RELEASE版本,发现连不上ES,而且也连不上以前单机部署的ES。

9,发现dockerhub上latest竟然是5.6.10而不是6.3.1?

10、修改dependecy到上面那个5.6.10版本,发现还是连不上,但是能连上单机部署的ES了。

11、检查一下由于java driver连接的是9300端口,也就是说需要ES是以完整集群设置来启动才行。

12、查询docker hub页面的cluster设置发现:

  One example of adding clustering support is to pass the configuration on the docker run:

  $ docker run -d --name elas elasticsearch -Etransport.host=0.0.0.0 -Ediscovery.zen.minimum_master_nodes=1

13、运行这条命令发现镜像启动后会自动关闭,怀疑出错。

14、把-d去掉,发现是由于vm.max_map_count配置的问题。

15、查询stackoverflow,发现最简单的办法还是修改宿主机的vm.max_map_count配置。

16、sudo sysctl -w vm.max_map_count=262144

17、再运行即可,记得暴露端口:

  sudo /kubernetes/local/bin/docker run -d -p 9200:9200 -p 9300:9300  elasticsearch -Etransport.host=0.0.0.0 -Ediscovery.zen.minimum_master_nodes=1

18、使用正常。

总结:

  正常来讲,对ES较为熟悉的用户应该知道9300是集群接口,如果仔细查看docker hub主页说明应当能知道这个需要启动cluster mode,但是如果只是想试用ES的话,这就比较坑了,而且docker run -e和docker run --systemctl设置vm.max_map_count都不方便(好吧我没成功)。但是除了ES外,其他什么mysql,tomcat,mongodb等软件试用起来都没问题,而且当db需要一个测试库时也可用来当测试数据库试用,不会影响任何其他系统环境,非常方便适合使用。(本文不涉及生产环境,所以mongodb设置数据存储系统这些生产环境才会用到的操作根本用不上,但是如果想用docker进行生产环境部署一定要考虑好存储等设置)

使用docker试用各种软件及docker-ES设置的更多相关文章

  1. 林帆:Docker运行GUI软件的方法

    继上周的“Kubernetes v1.0特性解析”分享之后,本周我们邀请到ThoughtWorks咨询师林帆为大家带来主题为“Docker运行GUI软件的方法”的分享. 嘉宾简介:林帆,Thought ...

  2. docker安装各类软件

    安装Docker Docker 要求 CentOS 系统的内核版本高于 3.10 , uname -r 命令查看你当前的内核版本 1 安装一些必要的系统工具: sudo yum install -y ...

  3. Docker这个新软件究竟是用来干嘛的???

    http://dockone.io/article/378 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试.时间非常宝贵,正是得 ...

  4. 微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)

    其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmwar ...

  5. 基于Docker安装常用软件

    基于Docker安装常用软件 本实验介绍如何基于Docker安装常用的软件,具体包括: Ubuntu Cetnos Nginx Node.js PHP MySQL Tomcat Redis Mongo ...

  6. 基于Ubuntu下以Docker方式gitlab软件的部署

    基于Ubuntu下以Docker方式gitlab软件的部署 目录 基于Ubuntu下以Docker方式gitlab软件的部署 1.安装Docker Compose 1.1 下载curl 1.2 安装c ...

  7. 安装docker及使用docker安装其他软件(手动挂载数据卷)

    中秋明月,豪门有,贫家也有,极慰人心 Linux安装docker 可以参考官方的安装文档 centos安装docker: https://docs.docker.com/engine/install/ ...

  8. Docker 试用

    Docker还是从.net core 了解的 百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可 ...

  9. 编译安装常用包+阿里镜像源-常用资源-系统-下载-科莱软件下载-docker仓库包-安全圈-杏雨梨云-图形界面安装-docker私有双仓库-阿里源报错处理-centos7目录大小

    yum install apr-util apr-util-devel apr apr-devel pcre pcre-devel zlib zlib-devel openssl openssl-de ...

随机推荐

  1. windows上react-native run-android时Exception in thread "main" java.lang.IllegalArgumentException: MALFORMED报错

    报错如图 解决 在C:\Users\{用户名}\.gradle\wrapper\dists路径下,删除所有文件夹,重新run-android ps:网上搜了说是说是java解压缩编码格式问题什么的,感 ...

  2. HTML入门3

    HTML主要工作在于编辑文本结构和文本内容,也称语义(semantics)以便能够再浏览器正确地显示,下面开始介绍在文本中添加标题,段落,强调语句,创建列表等等 基础:标题和段落 内容结构化会使得阅读 ...

  3. vue 项目界面绘制_stylus_iconfont_swiper

    stylus 兼容 less 的大部分语法 <link rel="stylesheet" href="stylus/index.css"> less ...

  4. 【搜索2】P1706 全排列问题

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列, ...

  5. js高级4

    1.Date  类 getDate()返回一个月中的某一天 1-31 getDay() 返回一周中的某一天0-6 getFullyear()返回四位数的年份 getMonth()返回月份 比实际情况小 ...

  6. js 对象属性遍历

    function 对象属性遍历(){ var obj = {x:1,y:2,c:3};for (var name in obj){ alert ( obj[name] )} } function 数组 ...

  7. F#周报2019年第10期

    新闻 .NET Core 3预览版3之宣告 .NET Core 3.0将在2019年下半年发布 .NET Standard 2.1的首个预览版 Docker与cgroup的内存限制 LambdAle ...

  8. linux权限字母的含义

    无 --- 只能列出文件 r-- 访问文件 r-x 创建和删除文件 rwx

  9. STA 463 Simple Linear Regression Report

    STA 463 Simple Linear Regression ReportSpring 2019 The goal of this part of the project is to perfor ...

  10. mysql8.0.13免安装版的安装配置详解

    一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...