容器技术

Docker笔记(七):常用服务安装——Nginx、MySql、Redis

我怕爱的太早我们不能终老 提交于 2019-11-26 12:42:43
开发中经常需要安装一些常用的服务软件,如Nginx、MySql、Redis等,如果按照普通的安装方法,一般都相对比较繁琐 —— 要经过下载软件或源码包,编译安装,配置,启动等步骤,使用 Docker 来安装这些服务软件能极大地简化安装过程,且速度也很快。 本文以下操作假定你已经装好了docker,并做好了镜像配置。如果没有,请参考 Docker笔记(三): Docker安装与配置 1. MySql 安装 1.1 下载镜像 ~$ docker pull mysql:5.7 1.2 创建挂载目录 ~$ mkdir -p apps/mysql/conf apps/mysql/data apps/mysql/logs 如上分别创建了配置文件目录,数据存放目录,以及日志文件目录 1.3 启动容器实例 ~$ docker run -d -p 3306:3306 --name mysql -v /home/devuser/apps/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \ -v /home/devuser/apps/mysql/logs:/var/log/mysql -v /home/devuser/apps/mysql/data:/var/lib/mysql \ --restart=always -e MYSQL_ROOT_PASSWORD

干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践

自作多情 提交于 2019-11-26 12:37:00
本文根据博云在dockerone社区微信群分享内容整理 过去几年博云在企业中落地容器云平台遇到了很多痛点,其中一个比较典型的痛点来自网络方面,今天很高兴跟大家聊聊这个话题并介绍下我们基于OVS自研的CNI插件——内部称之为fabric项目。 01 容器平台落地时网络方面的需求 从2013年左右Docker技术在开发者中流行起来,到如今kubernetes已经成为事实上的容器编排引擎,容器、微服务、DevOps互相支持互相促进,容器云平台的实际落地案例开始越来越多。特别是2018年以来,越来越多的企业开始思考如何利用容器云平台支持其生产场景最终提高生产效率。 不同于开发测试场景,生产场景上线一套平台或系统要求会严格很多。安全、监控、流程、现有系统集成、业务暴露等等的建设要求都要匹配上,否则不可能上线。在这个过程中,特别是在传统的金融类企业对监管要求严格的情况下,容器云平台落地时会碰到很多问题,这其中,最典型的一个需求就是容器云平台的网络建设,必须同时满足业务方,运维人员,安全人员,网络人员的诉求。 现在容器云平台大部分都是基于Kubernetes构建,市面上的CNI插件也非常多,各个企业现网的需求也有很大的不同,所以几乎不可能出现一种网络模型适配所有客户场景的情况。现在主流的比较成熟稳定的CNI比如calico在扩展性、稳定性等方面表现优秀,但在传统金融类企业落地时非常困难

Kubernetes(二):K8s介绍

别来无恙 提交于 2019-11-26 12:30:52
一、Kubernetes简介      Kubernetes是Google于2014年开源的一个容器编排工具,使用Google自己的go语言编写,由Borg衍生而来。Borg是Google内部已经运行近十年的容器编排工具,由于docker的横空出世,导致Google原本准备作为秘密武器的容器技术胎死腹中。计划被打乱,容器层面已经痛失良机,慢人一步,只有在编排工具层面下手了,Google当机立断,基于Brog的逻辑编写了Kubernetes,开源并捐给了CNCF(云远程计算基金会),由于Google近十年的使用经验,所以Kubernetes一出世就横扫了其它编排工具,时至今日,地位依然稳固。   Kubernetes源于希腊语,有“舵”或“飞行员”的意思。k8s,是由Kubernetes中间的八个字母缩写为数字8得来的。Google采用这个名字的深意就是:既然你docker把自己定位成驮着集装箱在大海上遨游的鲸鱼,那么我就以Kubernetes掌舵大航海时代的话语权,鲸鱼必须按照我设定的路线巡游。   Kubernetes的一大亮点就是自动化,在Kubernetes的解决方案中,一个服务可以自我扩展、自我诊断,并且容易升级,在收到服务扩容的请求后,Kubernetes会触发调度流程,最终在选定的目标节点上启动相应数量的服务实例副本,这些实例在启动成功后会自动加入负载均衡器中并生效

如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接

回眸只為那壹抹淺笑 提交于 2019-11-26 11:19:44
墨墨导读: 本文描述如何在Oracle Cloud中创建并访问容器服务。为了简单,所有的操作都是针对root隔离区。 创建允许容器运行的政策官方文档链接 这一步是必须的,否则可以增加容器容器。 官方文档链接:https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengpolicyconfig.htm#PolicyPrerequisitesService(复制链接至浏览器,即可查看) 左上角的产品菜单中:Governance and Administration -> Identity -> Policies。点击“Create Policy”之后,按照下图的样式创建Policy。 创建容器集群 官方文档链接: https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengcreatingclusterusingoke.htm (复制至浏览器,即可查看) 左上角的产品菜单中:Solutions and Platform -> Developer Services -> Container Cluster(OKE) 点击“Create Cluster”之后,页面中的元素较多,以下截图只是上半部分。 虽然元素较多,但是在测试阶段可以几乎完全使用默认值

深入理解Docker容器和镜像

倖福魔咒の 提交于 2019-11-26 10:06:16
如果你想和我或者更多Docker专家交流,可以加我微信liyingjiese,备注『加群』。群里每周都有全球各大公司的最佳Docker实践以及行业最新动态。 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。 当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union file system)的知识,然后回过头来再看Docker的命令,一切变得顺理成章,简单极了。 题外话:就我个人而言,掌握一门技术并合理使用它的最好办法就是深入理解这项技术背后的工作原理。通常情况下,一项新技术的诞生常常会伴随着媒体的大肆宣传和炒作,这使得用户很难看清技术的本质。更确切地说,新技术总是会发明一些新的术语或者隐喻词来帮助宣传,这在初期是非常有帮助的,但是这给技术的原理蒙上了一层砂纸,不利于用户在后期掌握技术的真谛。 Git就是一个很好的例子。我之前不能够很好的使用Git,于是我花了一段时间去学习Git的原理,直到这时,我才真正明白了Git的用法。我坚信只有真正理解Git内部原理的人才能够掌握这个工具。 Image Definition 镜像(Image

[置顶]
Docker学习总结(5)——超实用Docker入门学习教程

北战南征 提交于 2019-11-26 09:47:16
Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的“应用”,这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案。和虚拟化技术类似,它极大的方便了应用服务的部署;又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用Docker可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过他们彼此之间共享同一个操作系统。Docker的优势在于,它可以在更细的粒度上进行资源的管理,也比虚拟化技术更加节约资源。 上图:虚拟化和Docker架构对比,来自Docker官网 基本概念 开始试验Docker之前,我们先来了解一下Docker的几个基本概念: 镜像:我们可以理解为一个预配置的系统光盘,这个光盘插入电脑后就可以启动一个操作系统。当然由于是光盘,所以你无法修改它或者保存数据,每次重启都是一个原样全新的系统。Docker里面镜像基本上和这个差不多。 容器:同样一个镜像,我们可以同时启动运行多个,运行期间的产生的这个实例就是容器。把容器内的操作和启动它的镜像进行合并,就可以产生一个新的镜像。 开始 Docker基于LXC技术实现,依赖于Linux内核,所以Docker目前只能在Linux以原生方式运行

docker入门学习感悟

▼魔方 西西 提交于 2019-11-26 09:46:32
在一个月之前,恕我孤陋寡闻,我对docker的理解停留于一个英文词汇,dock:船坞,码头;docker:码头工人。等我走上工作岗位一个月之后,我对docker有了更深的理解,当然,还远远不够。 我们先来看一下百度百科的介绍:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。emmm,很抽象对不对,我首先想到的是虚拟机,很显然,docker的机制和虚拟机很像,虚拟机我们知道,你需要安装臃肿的操作系统、虚拟机管理系统、各种依赖和各种应用等,需要更多的硬件资源,而docker的守护进程可以直接与主操作系统通信,为各个docker容器分配资源,还可以将容器与主操作系统隔离,并将各个容器隔离。虚拟机启动需要数分钟,而docker容器在数毫秒内启动,同时大大节省计算机资源。下面盗图一张,直观明了 可能还不够简单明了,举个例子,你需要运输一批各种各样的货物,这批货物堆积在码头(dock)上,这些货物可能易碎不可积压,或者易燃易爆,你需要运输这批货物,在没有其他条件的情况下,你可能需要一趟趟地运输或者一次调动多艘运输船,耗时耗力,一艘艘船就好比是计算机资源,这些货物就是你需要执行的应用程序,它们会互斥,相互影响,你只能按部就班,兴师动众

Docker安装与基本使用

老子叫甜甜 提交于 2019-11-26 09:24:48
一、Docker介绍: Docker是一个开源的 应用容器引擎 ,是一个轻量级容器的技术。 Docker支持 将软件编译成一个镜像 ;然后再镜像中各种软件做好配置,将镜像发布,使用者可以直接用这个镜像。运行中的这个镜像称为容器。 二、概念: docker主机(Host) :安装了Docker程序的机器(它可以直接安装在操作系统之上); docker客户端(Client) :连接docker主机进行操作; **docker仓库(Registry):**用来保存各种打包好的软件镜像。 **docker镜像(images)😗*软件打包好的镜像;放在docker仓库中; **docker容器(Container):**镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。 三、安装Docker(在linux虚拟机系统上) 3.1 使用 uname -r 指令检查内核版本,必须是3.10及以上 3.2: 使用指令 yum install docker 安装docker,输入y确定安装。 如果你没有权限,需要升级为管理员权限,使用指令 su 输入密码即可。 3.3 用 systemctl start docker 启动Docker,然后用 docker -v 查看版本号(显示Docker version 1.12.6, build 3e8e77d/1.12.6) 3.4 使用

小白学 Python 爬虫(4):前置准备(三)Docker基础入门

前提是你 提交于 2019-11-26 09:01:37
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 Docker 基础 首先说一件事情,就在本文写作前一天,Mirantis 这家公司宣布收购了 Docker 的企业业务和团队。并且在官网上也挂出了相关的文字。 没别的意思,相关的新闻通告一下。 Docker 官网地址: https://www.docker.com/ 什么是 Docker ? emmmmm,说实话,Docker 是什么并不好说,下面通过四点大致解释下 Docker 到底是个什么东西。 Docker 是全球领先的软件容器平台。 Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC。 用户可以方便地创建和使用容器,把自己的应用放入容器。 Docker 容器的特点: 轻量化:在一台机器上运行的多个Docker容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的

Docker 架构原理及简单使用

一笑奈何 提交于 2019-11-26 05:49:59
  提示:文中有些内容为大神的博客内容,就不统一标注那里引用,只是再最下面标注参考连接谢谢 一、简介   1、了解docker的前生LXC      LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。     与传统虚拟化技术相比,它的优势在于:     (1)与宿主机使用同一个内核,性能损耗小;     (2)不需要指令级模拟;     (3)不需要即时(Just-in-time)编译;     (4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;     (5)避免了准虚拟化和系统调用替换中的复杂性;     (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。     总结:Linux Container是一种轻量级的虚拟化的手段。     Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机