容器

container和injection

∥☆過路亽.° 提交于 2020-02-05 05:21:36
1.容器的历史 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的位置,从而达到了进程隔离的目的。 2000 年的时候 FreeBSD 开发了一个类似于 chroot 的容器技术 Jails,这是最早期,也是功能最多的容器技术。Jails 英译过来是监狱的意思,这个“监狱”(用沙盒更为准确)包含了文件系统、用户、网络、进程等的隔离。 2001 Linux 也发布自己的容器技术 Linux VServer,2004 Solaris 也发布了 Solaris Containers,两者都将资源进行划分,形成一个个 zones,又叫做虚拟服务器。 2005 年推出 OpenVZ,它通过对 Linux 内核进行补丁来提供虚拟化的支持,每个 OpenVZ 容器完整支持了文件系统、用户及用户组、进程、网络、设备和 IPC 对象的隔离。 2007 年 Google 实现了 Control Groups( cgroups ),并加入到 Linux 内核中,这是划时代的,为后期容器的资源配额提供了技术保障。 2008 年基于 cgroups 和 linux namespace 推出了第一个最为完善的 Linux 容器 LXC。 2013

Container和Injection

夙愿已清 提交于 2020-02-05 03:15:42
1.容器(container)的历史 容器(container)概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的位置,从而达到了进程隔离的目的。 2000 年的时候 FreeBSD 开发了一个类似于 chroot 的容器技术 Jails,这是最早期,也是功能最多的容器技术。Jails 英译过来是监狱的意思,这个“监狱”(用沙盒更为准确)包含了文件系统、用户、网络、进程等的隔离。 2001 Linux 也发布自己的容器技术 Linux VServer,2004 Solaris 也发布了 Solaris Containers,两者都将资源进行划分,形成一个个 zones,又叫做虚拟服务器。 2005 年推出 OpenVZ,它通过对 Linux 内核进行补丁来提供虚拟化的支持,每个 OpenVZ 容器完整支持了文件系统、用户及用户组、进程、网络、设备和 IPC 对象的隔离。 2007 年 Google 实现了 Control Groups( cgroups ),并加入到 Linux 内核中,这是划时代的,为后期容器的资源配额提供了技术保障。 2008 年基于 cgroups 和 linux namespace 推出了第一个最为完善的 Linux 容器 LXC

CSS 弹性盒子 flex的三个属性:grow、shrink、basis

拜拜、爱过 提交于 2020-02-05 01:56:52
flex-grow 首先介绍fl ex-grow属性 , flex-grow 会在容器太大时对元素作出调整。 如果图片A的 flex-grow 属性的值为 1, 图片B的flex-grow 为 2,那么 2 的会比 1 的扩大两倍: 也许“扩大两倍”这个概念不便于理解,我们可以换一种说法。 首先要理解一个词“剩余空间”:具备flex环境的父容器(display:flex;)默认有一条从左往右 的主轴,而剩余空间就是父容器在主轴方向上还有多少可用空间。例如现在有一个父容器container宽度为500px, 而图A+图B为300px,则剩余空间为200px。此时,图片A的 flex-grow 属性的值为 1,图片B的 flex-grow 为 2, 则剩余空间200px将被分为1+2=3份,其中一份分给图片A,两份分给图片B,也就是上面所说的图片A比图片B多扩大两倍。 flex-shrink 默认情况下,flex是不换行的,即使内容的宽度超过了父容器的宽度也不会,除非设置flex-wrap来换行。 flex-shrink 属性。 flex-grow 会在容器太大时对元素作出调整。相应地,使用flex-shrink之后, 如果 flex 容器太小,该项目会自动缩小。当容器的宽度小于里面所有项目的宽度,项目就会自动压缩。 flex-shrink 属性接受 number 类型的值。数值越大

K8S 之 Flannel之SNAT规划优化

时光怂恿深爱的人放手 提交于 2020-02-05 00:04:25
一、Flannel之SNAT规划优化作用 解决两宿主机容器之间的透明访问,如不进行优化,容器之间的访问,日志记录为宿主机的IP地址。 1、宿主机访问172.7.22.2的nginx容器情况 2、172.7.22.2查看nginx访问日志 3、进入172.7.21.2的容器访问172.7.22.2的nginx容器,查看日志 4、再次查看172.7.22.2的nginx访问日志 5、解决问题:当容器172.7.21.2访问172.7.22.2的nginx容器时,展示的日志应为172.7.21.2 二、解决方法 1、安装iptables-services组件 [root@test-nodes1 ~]# yum -y install iptables-services [root@test-nodes1 ~]# systemctl start iptables [root@test-nodes1 ~]# systemctl enable iptables Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service. ------------------------------------------------

KubeSphere 云原生开箱即用 属于社区而非青云

岁酱吖の 提交于 2020-02-05 00:02:50
如今,数字化转型逐渐进入平稳期,在这样的新阶段,企业越发依赖 IT 系统,传统的上云模式已经无法应对频繁的业务更迭;面对未来,“云上”成为了最佳的选择,面向云而设计。 于爽认为,云原生的优势在于可以很好地构建容错性好、易于管理和便于观察的松耦合系统,若结合可靠的自动化手段,云原生技术可帮助工程师够轻松的对系统作出频繁、可预测的重大变更。 近期微信新表情攻陷朋友圈,网络上各类《XXX刷屏了!XXXX微信新增表情包XXX,XXX为啥你没有?》的攻略型文章纷纷来蹭热度。值得关注的是,在这些文章中均提到了“为啥,你的微信表情里就没有呢?”,同时还给出了众多的解决办法,但微信作为社交软件领域的领军者,为何只为一部分人进行了更新? 当然这不是微信的低级失误,只是在升级更新时用到了灰度发布的方式,这种更新方式企业不必一次性中断业务,大家可以看到除表情外微信的功能及样式基本没有变化,同时可以帮助企业灵活的选择用户参与产品更新或测试,迅速获取用户的使用情况,逐步完善产品功能,提升产品质量。 而灰度发布则是云原生平台其中一项重要的业务功能,随着企业上云的普及,数字技术所驱动企业数字化转型已成为常态,云原生作为一项低负担的、敏捷的、可扩展的、可复制和最大化地利用云能力的软件架构方式,已经成为解决企业业务落地数字化、互联网化的新趋势。KubeSphere 容器平台产品经理于爽也给出了自己的观点

Docker Compose多容器部署

蹲街弑〆低调 提交于 2020-02-04 23:25:06
一、wordpress部署 这里先以wordpress的部署为例引出Docker Compose,wordpress的部署需要wordpress和mysql的镜像: (一)准备环境 1、拉取wordpress镜像 [root@docker-node1 /]# docker pull wordpress 2、拉取mysql镜像 [root@docker-node1 /]# docker pull mysql 3、镜像列表 [root@docker-node1 /]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE wordpress latest 0947f14b932b 25 hours ago 540MB mysql latest 791b6e40940c 43 hours ago 465MB (二)运行镜像 1、运行mysql镜像 [root@docker-node1 /]# docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql

Docker Compose 30

点点圈 提交于 2020-02-04 22:34:22
Docker Compose 30 什么是 Docker Compose 概述 Docker Compose 安装与卸载 二进制包 PIP 安装 bash 补全命令 容器中执行 卸载 Docker Compose 使用 术语 场景 web 应用 Dockerfile docker-compose.yml 运行 compose 项目 Docker Compose 命令说明 命令对象与格式 命令选项 build config down exec help images kill logs pause port ps pull push restart rm run scale start stop top up version Docker Compose 模板文件 build cap_add, cap_drop command configs cgroup_parent container_name deploy devices depends_on dns dns_search tmpfs env_file environment expose external_links extra_hosts healthcheck image labels links logging network_mode networks pid ports secrets security_opt

【Mac】Docker安装及基础使用

余生长醉 提交于 2020-02-04 20:24:01
Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装: Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默认还是全部都安装上的比较方便。 安装好了,相关的东西就都有了。 然后你可以在命令行中跑一个 docker run hello-world 试试。留意下输出的内容。 如果是其他系统,参考官网文档: https://docs.docker.com/engine/installation/ ,安装过程不算特别复杂,Linux 系统留意一下内核版本是否满足 Docker 的要求。 Docker 的使用 当你执行 docker run hello-world 时,Docker 会做这些事情: 检查是否有 hello-world 这个镜像 没有的话从 Docker Hub 下载这个镜像 把镜像加载到容器中并且运行 我们还可以再跑一下官方提供的简单例子: docker run docker/whalesay cowsay boo-boo 。 Docker 命令 Docker 提供了很多命令来管理镜像和容器,我们可以使用 --help 来查看帮助详情,这里提及几个常用的。 docker images 查看本地有哪些镜像可以使用的。 docker rmi <image name>

Spring框架简介

淺唱寂寞╮ 提交于 2020-02-04 19:24:09
1、使用框架的意义与Spring的主要内容 随着软件结构的日益庞大,软件模块化趋势出现,软件开发也需要多人合作,随即分工出现。如何划分模块,如何定义接口方便分工成为软件工程设计中越来越关注的问题。良好的模块化具有以下优势:可扩展、易验证、易维护、易分工、易理解、代码复用。 优良的模块设计往往遵守“低耦合高内聚”的原则。而“框架”是对开发中良好设计的总结,把设计中经常使用的代码独立出来,所形成的一种软件工具。用户遵守它的开发规则,就可以实现良好的模块化,避免软件开发中潜在的问题。广义上的框架无处不再,一个常见的例子就是PC硬件体系结构,人们只要按照各自需要的主板、显卡、内存等器件就可以任意组装成自己想要的电脑。而做主板的厂商不用关心做显卡厂商的怎么实现它的功能。软件框架也是如此,开发人员只要在Spring框架中填充自己的业务逻辑就能完成一个模块划分清晰纷的系统。 这里主要通过一个银行通知用户月收支记录的小例子来介绍轻型J2EE框架Spring的主要内容、它所解决的问题和实现的方法。 Spring框架主要可以分为3个核心内容: 容器 控制反转(IoC ,Inversion of Control) 面向切面编程(AOP ,Aspect-Oriented Programming) 例子中依次对这些特性进行介绍,描述了软件模块化后存在的依赖与问题,以及Spring框架如何解决这些问题。 2

java基础五(AWT和Swing)

岁酱吖の 提交于 2020-02-04 16:10:43
目录 1.概念 2.布局管理器 2.1FlowLayout(流式布局) 2.2BorderLayout(边界布局) 2.3GridLayout(网格布局) 2.4CardLaout(卡片布局) 3.AWT 3.1事件处理 3.2AWT的组件 4.Swing 4.1容器面板和组件 4.2布局管理 4.3事件处理 一、概念   1、AWT (抽象窗口工具包)(Abstract Window Toolkit):提供的建立图形用户界面GUI(Graphics User Interface)的开发包。   2、java.awt包:提供GUI设计所使用的类和接口。主要包括 组件(Component)、容器(Container)、布局管理器(LayoutManager)。   3、 组件不能独立地显示出来。必须要放在一定的容器中才可以显示出来。   4、布局管理器(LayoutManager):用来管理组件放置在容器中的位置和大小的。   5、面板(Panel):是一种透明的容器,没有标题,也没有边框,就像一块透明玻璃。 二、布局管理器(LayoutManager)   使用布局管理器的注意点:   (1)在不作任何设置的前提下,用户无法设置组件的属性,都会被布局管理器覆盖。使用的属性无效。   (2)如果用户想自己设置组件的位置和大小,需要将布局管理器设置为setLayout(null)