容器

转载关于IOC的理解

怎甘沉沦 提交于 2020-03-20 07:26:49
转载自:http://blog.csdn.net/m13666368773/article/details/7802126 一. IoC理论的背景    我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。   如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是 这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问 题,就可能会影响到整个齿轮组的正常运转。 齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临 更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。   耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。 为了解决对象之间的耦合度过高的问题

图解 Kubernetes

删除回忆录丶 提交于 2020-03-20 06:37:14
容器 在了解 Kubernetes 之前,让我们先了解一个容器。 因为如果不了解容器就没法聊容器编排。 容器就是...一个你塞入所有 材料 的容器。 “材料”是指你的应用代码、依赖库,以及直到内核的依赖关系。 关键概念是 隔离 ,把你的这些材料隔离出来,以便更好的控制他们。 容器提供了3种类型的隔离: 工作空间隔离(进程、网络) 资源隔离(CPU、内存) 文件系统隔离 容器可以理解为节食的VM,具有隔离性,但容器非常精简、体积小、启动快。 VM是在操作系统之上又安装了多个操作系统,VM之间自然是隔离的。 而容器是通过 Linux 的 cgroup 实现了VM那样的隔离性,并不需要安装操作系统。 什么时候使用Kubernetes? 容器挺好的,为什么需要 Kubernetes 这样的容器协调器呢? 如果你达到图中这个状态时,你就需要他了,有太多的容器需要管理了。 Q:我前端容器在哪儿呢?有多少个在运行? A:很难说啊,快使用容器编排吧。 Q:如何让我的前端容器与新创建的后端容器沟通? A:可以硬编码 IP,或者,使用容器编排。 Q:如何滚动升级? A:你可以手动控制每一步,或者,使用容器编排。 Kubernetes 体系结构 每个Kubernetes集群都有两种类型的节点:master 和 worker。 master 是控制和监控 worker 工作的这个集群的。 master

写给大家看的“不负责任” K8s 入门文档

こ雲淡風輕ζ 提交于 2020-03-20 00:04:29
3 月,跳不动了?>>> 作者 | 邓青琳(轻零) 阿里巴巴技术专家 导读 :本文转载自阿里巴巴技术专家邓青琳(轻零)在内部的分享,他从阿里云控制台团队转岗到 ECI 研发团队(Serverless Kubernetes 背后的实现基石),从零开始了解 K8s,并从业务发展的视角整理了 K8s 是如何出现的,又是如何工作的。 前言 2019 年下半年,我做了一次转岗,开始接触到 Kubernetes,虽然对 K8s 的认识还非常的不全面,但是非常想分享一下自己的一些收获,希望通过本文能够帮助大家对 K8s 有一个入门的了解。文中有不对的地方,还请各位老司机们帮助指点纠正。 其实介绍 K8s 的文章,网上一搜一大把,而且 Kubernetes 官方文档也写的非常友好,所以直接上来讲 K8s,我觉得我是远远不如网上的一些文章讲的好的。因此我想换一个角度,通过一个业务发展的故事角度,来讲 K8s 是怎么出现的,它又是如何运作的。 故事开始 随着中国老百姓生活水平的不断提高,家家户户都有了小汽车,小王预计 5 年后,汽车报废业务将会迅速发展,而且国家在 2019 年也出台了新政策 《报废机动车回收管理办法》 ,取消了汽车报废回收的“特种行业”属性,将开放市场化的竞争。 小王觉得这是一个创业的好机会,于是找了几个志同道合的小伙伴开始了创业,决定做一个叫“淘车网”的平台。 故事发展

docker安装mysql

只愿长相守 提交于 2020-03-19 06:56:55
1.docker使用非root权限运行docker sudo usermod -aG docker your-user 2.第一步,拉取MySQL镜像 docker pull mysql:5.5 查看镜像 docker images 3.创建并启动一个MySQL容器 docker run --name yi-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.5 –name:给新创建的容器命名,此处命名为 pwc-mysql -e:配置信息,此处配置 mysql 的 root用户 的登陆密码 -p:端口映射,此处映射 主机3306端口 到 容器pwc-mysql的3306端口 -d:成功启动容器后输出容器的完整ID,例如上图 73f8811f669ee... 查看容器运行状态: docker ps 4.测试MySQL 可以用navicat或者其他工具连接测试 5.创建多个mysql服务 docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 4306:3306 -d mysql:5.5 6.查看所有容器 docker ps -a 7.启动和关闭容器 启动: docker start yi-mysql //通过指定容器名字 docker start

容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付

可紊 提交于 2020-03-19 00:36:44
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式。 甚至可以说,是在容器技术之后,DevOps、CI/CD 等运维关键问题才有了质的飞跃:实现资源的动态创建和销毁,更轻量的容器技术既能保证环境一致性也能进一步提高迭代频率,各种容器平台也能更好地保证应用高可用、自动伸缩、业务连续等等。 今天将跟大家分享支撑双十一的容器镜像服务 ACR,以及它是如何实现搭配 IDE 插件和 CICD/云原生应用交付链来实现一键部署与持续集成,以下是本文提纲: 什么是 容器镜像服务 ACR 如何搭配 免费 IDE 插件 实现一键部署 如何运用 CICD/云原生应用交付链 实现持续集成与交付 容器镜像服务 ACR 为了更好地支持双十一大规模分发需求,容器镜像服务(Alibaba Cloud Container Registery, ACR)团队提前进行规划及迭代更新,全面提升了大规模分发场景下的性能、可观测性和稳定性。在新的双十一来临前,容器镜像服务已达到了 数 PB 的镜像托管量,月均镜像拉取达 数亿次 ,平滑度过 54.4 万笔交易峰值。 阿里云镜像仓库 ACR 分为默认实例版与企业版,虽然结合阿里云产品做了多维度优化,但是并不与阿里云强制绑定。ACR 默认实例版面向容器开发者

docker无法删除镜像,Error: No such container,附docker常用命令

风格不统一 提交于 2020-03-18 14:03:28
最近打算删除掉docker镜像但是发现有几个镜像就是删除不了,加了-f强制删除也不行,一直报Error: No such container的错误,最后终于找到了办法直接删除文件,步骤如下: 切换到root用户然后: service docker stop rm -rf /var/lib/docker start docker.service 到这里就会发现镜像已经删除干净。 附docker常用命令: 重启docker服务 sudo service docker restart 关闭docker服务 docker service docker stop 开启docker服务 docker service docker start 查看当前运行的容器:docker ps 查询存在的容器:docker ps -a 删除容器:docker -rm CONTAINERID 强制删除容器:docker -rm -f CONTAINERID 不能够删除一个正在运行的容器,会报错。需要先停止容器。 查看镜像:docker images 删除镜像:docker -rmi IMAGEID 强制删除镜像:docker -rmi -f IMAGEID 利用镜像创建容器: docker run --name centos -itd centos:latest 注:-i表示让容器的标准输入打开,

容器引擎Docker和容器编排kubernetes`如何优雅的收集容器日志 Log-Pilot

最后都变了- 提交于 2020-03-17 22:57:40
某厂面试归来,发现自己落伍了!>>> ​容器引擎 Docker 和容器编排kubernetes`如何优雅的收集容器日志 Log-Pilot 介绍 log-Pilot 是一个阿里开源的智能容器日志采集工具,它不仅能够高效便捷地将容器日志采集输出到多种存储日志后端,同时还能够动态地发现和采集容器内部的日志文件。 针对前面提出的日志采集难题,Log-Pilot 通过声明式配置实现强大的容器事件管理,可同时获取容器标准输出和内部文件日志,解决了动态伸缩问题,此外,Log-Pilot 具有自动发现机制,CheckPoint 及句柄保持的机制,自动日志数据打标,有效应对动态配置、日志重复和丢失以及日志源标记等问题。 log-pilot 开源地址: https://github.com/AliyunContainerService/log-pilot log-pilot 官方帮助文档: https://help.aliyun.com/document_detail/50441.html 使用 Log-Pilot 进行 Docker 日志收集 部署 Log-Pilot 到 Docker 执行docker命令启动 log-pilot docker run--rm-it -v/var/run/docker.sock:/var/run/docker.sock -v/:/host --privileged

docker 安装mysql

依然范特西╮ 提交于 2020-03-17 19:03:23
docker search mysql #docker中搜索可用镜像 docker pull mysql:5.7 #拉取MySQL镜像 docker image ls #查看MySQL镜像 #创建目录,用于保存配置和数据 mkdir -p /home/docker/mysql/conf.d mkdir -p /home/docker/mysql/data #创建MySQL容器 docker run -di -p 10010:3306 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123test --name mysql mysql:5.7 参数的含义: --name mysql 将容器命名为mysql,后面可以用这个name进行容器的启动暂停等操作 -e MYSQL_ROOT_PASSWORD=123456 设置MySQL密码为123456 -d 此容器在后台运行,并且返回容器的ID -i 以交互模式运行容器 -p 进行端口映射,格式为 主机(宿主)端口:容器端口 --restart=always 当docker重启时,该容器自动重启 #进入MySQL容器 docker exec -ti mysql bash#登陆mysqlmysql

STL(二)

社会主义新天地 提交于 2020-03-17 17:39:07
文章目录 1. stack栈容器 2. queue 队列容器 3. List容器 4. set容器 5. map容器 1. stack栈容器 1.1先进后出 1.2栈顶 top 1.3压栈 push 1.4弹出栈顶 pop 1.5大小 size 1.6为空 empty 02 stack栈容器.cpp # define _CRT_SECURE_NO_WARNINGS # include <iostream> # include <stack> using namespace std ; /* stack构造函数 stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式: stack(const stack &stk);//拷贝构造函数 3.4.3.2 stack赋值操作 stack& operator=(const stack &stk);//重载等号操作符 3.4.3.3 stack数据存取操作 push(elem);//向栈顶添加元素 pop();//从栈顶移除第一个元素 top();//返回栈顶元素 3.4.3.4 stack大小操作 empty();//判断堆栈是否为空 size();//返回堆栈的大小 */ void test01 ( ) { stack < int > s ; //放入数据 push s . push ( 10 ) ; s

Docker入门实战

拜拜、爱过 提交于 2020-03-17 12:17:51
Host(Docker 宿主机) 安装了Docker程序,并运行了Docker daemon的主机。 Docker daemon(Docker 守护进程): 运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互。 Images(镜像): 将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器。 Containers(容器): Docker的运行组件,启动一个镜像就是一个容器,容器与容器之间相互隔离,并且互不影响。 Docker Client(Docker 客户端) Docker命令行工具,用户是用Docker Clients与Docker daemon进行通信并返回结果给用户。也可以使用其他工具通过Docker Api与Docker daemon通信。 Registry(仓库服务注册器) 经常会和仓库(Repository)混为一谈,实际上Registry上可以有多个仓库,每个仓库可以看成是一个用户, 一个用户的仓库放了多个镜像。仓库分为了公开仓库(Public Repository)和私有仓库(Private Repository),最大的公开仓库是官方的Docker Hub,国内也有如阿里云、时速云等,可以给国内用户提供稳定快速的服务。用户也可以在本地网络内创建一个私有仓库