主要内容:

1、Docker与Kubernetes的关系

2、SpringBoot微服务的Docker镜像创建

3、Kubernetes本地环境搭建

一、Docker与Kubernetes的关系

在说明Docker与Kubernetes的关系之前,要先同步一下Docker定义--Docker是什么?Docker是一个打包、分发和运行应用程序的平台。它是一种容器化技术,可以使它创建的容器运行在不同的机器、不同的操作系统上(此处可以类比Java的跨平台特性)。不过docker是依赖于linux内核的,所以如果在windows系统上运行,实际是运行于windows上的虚拟linux环境中。

一个Docker运行时容器就是一个进程。Docker与虚拟机的区别,很大一点在于容器没有自己的操作系统内核,它依赖于宿主机的操作系统,更轻量级;而虚拟机有自己的操作系统内核,相对更自由,但更重量级。

二、SpringBoot微服务的Docker镜像搭建

由于SpringBoot自带tomcat,所以找一个JDK镜像就够了。此处博主用的基础镜像是 williamyeh/java8:latest。

1、简易项目构建:

bootstrap.yml文件内容(指定服务端口):

1 server:
2 port: 8001

Dockerfile文件内容(在pom中指定了打包文件名jugg):

1 FROM williamyeh/java8:latest
2 EXPOSE 8001
3
4 ADD jugg.jar /jugg.jar
5 ENTRYPOINT ["java","-jar","/jugg.jar","--server.port=8001"]

2、构建镜像

先将jar包和Dockerfile文件上传到服务器的同一个目录上去:

然后执行指令创建镜像(镜像名jugg):

1 docker build -t jugg .

成功后执行下 docker images,可以看到我们刚创建的镜像:

再执行run让镜像运行起来

1 docker run --name juggcontainer -p 8001:8001 -d jugg

name后面是指定容器名,-p后面指定端口。注意Dockerfile文件中EXPOSE暴露的端口并没有实际效果,执行run命令时指定的端口才是最终使用的端口。

浏览器访问下服务,完美!(注意检查服务器的端口是否能被访问到)

三、Kubernetes本地环境搭建

1、minikube的安装与启动

Kubernetes本地环境搭建一般都是用minikube,这玩意的版本和环境关系很大,稍不注意安装的时候就会有各种意外。minikube安装时有两种下载地址,一个是国内阿里云的,一个是国外谷歌的地址。阿里的好处就是网络稳定,基本都会下载成功。而用谷歌的地址,很不稳定。但是呢,博主用阿里云的下载启动时,遇到了各种各样的问题(博主的云主机是单核CPU,有的报错就跟此相关,如果是双核CPU,估计安装与启动会顺利得多),一怒之下又改用谷歌的minikube地址,虽然网络波动较大,但多试了几次,最后顺利启动成功。

首先执行命令下载minikube(若无下载进度,则ctrl+C终止后重新执行命令,反复几次,总会有成功的时候):

1 curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin

然后执行启动指令,如下。博主的云主机上未安装虚拟驱动,所以直接指定为none,但还得指定下cpu核数以及忽略掉核数不匹配的错误,否则会终止启动流程:

1 minikube start  --vm-driver=none --extra-config=kubeadm.ignore-preflight-errors=NumCPU --cpus 1

博主前两次执行都报错获取不到版本:

直到执行第三次才成功启动:

注意每次因为版本问题导致start失败之后,最好清空一下minikube的记录,重新下载,清空minikube记录的指令:

minikube delete && rm -rf ~/.minikube && rm -rf ~/.kube

2、kubectl的安装

kubectl是kubenetes的客户端,有了它我们才能通过命令行与kubernetes集群进行交互。这个的安装就简单多了,执行指令:

curl -LO https://storage.googleapis.com/kubenetes-releases/release/v1.19.4/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

如果多执行几次也下载不下来,你又没啥办法的话,可以点击这个链接下载:【https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubectl】

下载下来之后手动往usr/local/bin目录传上去,再执行上面指令中的  chmod +x kubectl 命令即可。

安装好之后,打个kubectl指令检验一下效果:

完美!

参考文献:

1、《Kubernetes in Action》  ...Marko Luksa

2、Kubenetes官网,minikube官网

傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建的更多相关文章

  1. Mac下docker搭建lamp本地开发环境

    1.先在Mac上下载docker:官网下载:下载地址(选择mac版本下载,可能速度较慢) DaoCloud下载:下载地址(速度较快,可能版本较低) 2.装完之后打开: 3.检查一下是否下载成功: $  ...

  2. spark-windows(含eclipse配置)下本地开发环境搭建

    spark-windows(含eclipse配置)下本地开发环境搭建   >>>>>>注意:这里忽略JDK的安装,JDK要求是1.8及以上版本,请通过 java  ...

  3. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  4. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  5. 搭建BCE本地开发环境

    1. 在官网下载VirtualBox & 虚拟机 http://bce.baidu.com/doc/BAE/GUIGettingStarted.html#.E4.B8.8B.E8.BD.BD. ...

  6. windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)

    推荐几款一键快速搭建PHP本地运行环境的好工具(含php7.0及apache,nigix,mysql) 首推phpstudy2016和wampServer3.0.6     理由支持php7.0 目前 ...

  7. 使用pipework将Docker容器配置到本地网络环境中

    使用pipework将Docker容器配置到本地网络环境中 需求 在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主 ...

  8. hbase本地调试环境搭建

    1,前言 想要深入的了解hbase,看hbase源码是必须的.以下描述了搭建hbase本地调试环境的经历 2,安装步骤 2.1,启动hbase 1,安装java和IDE IntelliJ,下载源码等. ...

  9. rocketmq那些事儿之本地调试环境搭建

    上一篇文章中我们已经介绍过rocketmq的集群环境搭建,然而在源码的学习中我们还需要进行本地的调试和问题的定位查找,毕竟还是在本地方便些,今天就说一说如何进行源码的本地调试 下载编译 对于rocke ...

随机推荐

  1. Git 分支相关

    创建分支 git branch dev 切换分支 git checkout dev (dev换成-可切换为上一个使用的分支) 以上两个可合并为 git checkout -b dev 将新分支推送到远 ...

  2. ASP.NET Core管道详解[3]: Pipeline = IServer + IHttpApplication

    ASP.NET Core的请求处理管道由一个服务器和一组中间件构成,但对于面向传输层的服务器来说,它其实没有中间件的概念.当服务器接收到请求之后,会将该请求分发给一个处理器进行处理,对服务器而言,这个 ...

  3. 用思维导图软件iMindMap来提高记忆

    虽说人的大脑是强大的存储器,但是我们终究没有挖掘出大脑全部的潜能,在记忆时或许因为方式.或许是干扰因素都能够影响我们的记忆力,致使有心无力,快来让思维导图来拯救你的记忆吧. 记忆是经验的关键,思维导图 ...

  4. 如何使用Camtasia进行电脑录制屏幕

    在现在的网络互联网时代,越来越多的人走上了自媒体的道路.有些自媒体人会自己在网络上录制精彩视频,也有一些人会将精彩.热门的电影剪辑出来再加上自己给它的配音,做成大家喜欢看的电影剪辑片段.相信不管大家是 ...

  5. zabbix地图显示全国延迟

    Zabbix 地图显示全国延迟 1.  效果图 2.  实现方法 将地图.png上传到zabbix为背景,上传红绿点.png为图标.然后新建主机关联模板为ICMP Ping,新建一个拓扑图调用地图为背 ...

  6. redis-cli 持久化,复制,哨兵,事务,流水线

    一.持久化: 快照文件RDB 保存"开始"创建新快照一刻的内存快照,创建过程的内存变化不会被记录 创建快照的办法有几种 1.客户端可以通过想Redis发送BGSAVE来创建一个快照 ...

  7. 浅谈代理模式与java中的动态代理

    代理模式的定义: 代理模式是一个使用律非常高的模式,定义如下: 为其他对象提供一种代理,以控制对这个对象的访问. 类图: 简单的静态代理: public interface IRunner{ //这是 ...

  8. 以前一个个文件删数据的我,今天终于找到了释放C盘空间的办法

    这是我刚刚清理的C盘,亲测有效!无需安装清理空间的软件,我的电脑品牌是华硕. win10的电脑应该都有搜索功能,如果没有开启,可以鼠标右键点击任务栏. 弹出菜单找到[搜索]-[显示搜索图标],勾选即可 ...

  9. SQL优化之SQL 进阶技巧(上)

    由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL ...

  10. Spring Boot 2 集成 Swagger

    本文测试代码使用 Spring Boot 2.1.6.RELEASE + Swagger 2.9.2 添加依赖 <dependency> <groupId>io.springf ...