容器

docker swoft

ぃ、小莉子 提交于 2020-02-29 18:17:54
docker swoft 安装并运行docker docker run -d -p 80:80 --name swoft swoft/swoft docker ps 查看正在运行的容器 docker ps -a 查看所有容器 包括未运行的 docker exec -it swoft bash /docker exec -it [container id] bash 进入swoft容器 exit 退出容器 docker run -d -p 80:80 swoft/swoft 运行已经存在的容器 docker stop [container id] 停止运行的容器 从容器里面拷文件到宿主机 docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 设置宿主机和docker共享文件 共享的前提是docker容器中的文件地址应该和宿主机对应的文件是一模一样的,即要不都是空的,要不有一模一样的文件。 共享命令:docker run -d -p 80:80 -itv /Users/liutengfei/swoft/swoft:/var/www/swoft swoft/swoft /bin/bash 冒号之前是宿主机的文件地址

面向容器技术资源调度关键技术对比

最后都变了- 提交于 2020-02-29 17:20:58
资源分配理念看已有调度器 在资源调度器中,资源分配理念:拍卖、预算或抢占,往往是混合运用。资源分配理念,折射出了资源调度器所在的生态系统或者说周边配合系统的成熟度、运行习惯。例如,Google从最早的广告拍卖机制起,拍卖的理念在Google内部就形成了一种经验、选择的爱好或者内部的默契,那么资源竞拍被分配出来的结果,大家很容易达成一致、理解。而国内企业,往往是预算驱动,周边系统的运行习惯,更趋向预算、采购,谁预算谁使用。这种环境下,资源被谁使用基本可以预见,成本也是比较容易找到归属者。在拍卖机制下资源抢占,初始分配是不大会发生,只有在运行时发生资源不够用的时候出现,低优先级的任务被Kill。在预算机制下,资源分配初期、运行时过程中,都会发生抢占。不同哪种分配背后共同追求的资源流动性是一致的。拍卖的另外一种好处是便于资源流动起来,不仅是资源利用率提升,更是资源投入产出比的最大化。而预算往往是一次性的,重点业务资源优先保障,使得适应性、灵活性、激励业务效率提升变得不如拍卖。 不同策略落地在架构、数据、API层面有着非常多的共同之处。从中不难发现Borg是始祖,后来的Mesos、Omega、Kubernetes、Zeus等都延续着Borg的某些重要特征,而又随技术发展,引入新的特征。针对每个系统的具体分析,可以参照Google

Docker 从入门到实践(二)Docker 三个基本概念

坚强是说给别人听的谎言 提交于 2020-02-29 16:37:29
一、Docker 的三个进本概念? 了解 Docker 的三个基本概念,就可以大致了解 Docker 的生命周期。 镜像(Image) 容器(Container) 仓库(Repository) 二、镜像 1.Docker 镜像   我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变 2.分层存储   因为 镜像包含了操作系统完整的 root 文件系统,其体积还是很巨大的,所以引入了 Unios FS 技术,将其设计为分层存储的架构。所以镜像不是那种 ISO 打包文件,镜像是一个虚拟的概念,它是由一组文件系统构成,或者说多层文件系统联合构成。   镜像在构建时,是一层层构建,上一层是下一层的基础,每一层构建结束就不会在被修改,后一层任何修改只会作用在当前层。例如删除上一层文件,不会真的删除该文件

关于Docker网络模式梳理

旧时模样 提交于 2020-02-29 13:43:28
Docker大致可以分为五种网络模式: 1. bridge --network=bridge 默认网络,Docker启动后创建一个docker0网桥,默认创建的容器是添加到这个网桥中 2. host --network=host 容器不会获得一个独立的network namespace,而是于宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主机的。容器除了网络,其他都是隔离的 3. none --network=none 容器获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置 4. container --network=container:Name/ID 与指定容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的 5. 自定义网络 与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名进行容器间的网络通信 PS:数据走向: 数据包 --> veth1 --> veth0 --> docker0 -(SNAT)-> eth0 --> 外界 数据包 --> eth0 -(DNAT)-> docker0 --> veth0 --> veth1 来源: 51CTO 作者: 一朵西兰花 链接: https://blog.51cto.com

@Import直接导入类,在容器@Component中是怎么直接导入类注册到容器的?

橙三吉。 提交于 2020-02-29 11:42:31
Java程序员必学技术:@Import直接导入类,在容器@Configuration、@Component中是怎么直接导入类注册到容器的? Spring IoC 容器是一个管理 Bean 的容器,在 Spring 的 定义中,它要求所有的 IoC 容器都需要实现接口 BeanFactory ,它是一个顶级容器接口 。 接下来就和大家分享一下, //直接插入一个类,既可以注册到容器 //这里注意注册的Bean的名称是全类名 @Import(Stu.class) @Configuration public class StuConfiguration { } public class Stu { String name; public Stu(String name) { this.name = name; } public Stu() { } public String getName() { return name; } public void setName(String name) { this.name = name; } } @SpringBootApplication public class Demo7Application { public static void main(String[] args) { ConfigurableApplicationContext

Spring面试题部分总结【慨念】

眉间皱痕 提交于 2020-02-29 11:25:54
什么是Spring? spring是一个企业级应用的开源开发框架,主要用来开发java应用,spring框架目标就是简化企业级应用开发。 Spring用到了那些设计模式? spring里面用到了大量的设计模式,这里举例比较有代表性的: 代理模式:在aop中使用比较多 单例模式:在spring配置文件定义的bean默认为单例模式 模板模式:用来解决代码重复问题 工厂模式:BeanFactory用来创建对象的实例。 使用Spring框架有什么好处? 1.轻量:spring是轻量的,基本版本大约2MB 2.控制反转;spring通过这个实现了松散耦合,对象给他们依赖,而不是创建对象 3.spring支持面向切面的编程,并且把业务逻辑和系统服务分开 4.spring容器包含管理应用中对象的声生命周期和配置 什么是Spring IOC容器? spring IOC 负责创建对象,管理对象(通过依赖注入),装配对象,配置对象,并管理对象的生命周期 IOC的优点是什么? IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,最小的代价和最小的侵入性使松散耦合得以实现 ApplicationContext通常实现的是什么? ClassPathXmlApplicationContext :此容器从一个xml文件中加载beans的定义。xml bean 配置文件的全路径名必须提供给他的构造函数。

Docker 实现挂载的三种方式

无人久伴 提交于 2020-02-29 11:23:31
最近学习了docker,做一些笔记来巩固知识,也供他人参考 文章目录 一 通过docker run命令 二 通过dockerfile创建挂载点 三 容器共享卷(挂载点) 四 最佳实践:数据容器 五 总结 在介绍VOLUME指令之前,我们来看下如下场景需求: 1.容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上。一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像)。能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在。 2. 当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上。 这样的话,我在主机上修改文件(如html,js等)后,需要再同步到容器中。这显然比较麻烦。 3. 多个容器运行一组相关联的服务,如果他们要共享一些数据怎么办? 对于这些问题,我们当然能想到各种解决方案。而docker本身提供了一种机制,可以将主机上的某个目录与容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是主机的这个目录下的内容,这类似linux系统下mount的机制。 这样的话,我们修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的。 挂载点可以让多个容器共享。 下面我们来介绍具体的实现机制。 一

Container(容器)与 Injector(注入)

╄→гoц情女王★ 提交于 2020-02-29 11:16:44
Container(容器): History: containerd于2014年出生于Docker,最初是Docker引擎的低层运行时管理器。继2017年3月被CNCF接受之后,containerd已经成为一个行业标准的容器运行时,专注于简单性,健壮性和可移植性,其最广泛的用途和采用是Docker引擎和OCI runc执行器之间的层。containerd可用作Linux和Windows的守护程序。它管理其主机系统的完整容器生命周期,从图像传输和存储到容器执行和监督,再到低级存储,再到网络附件等。 背景:1、 containerd 是一个行业标准的容器运行时,强调简单性,健壮性和可移植性。containerd可用作Linux和Windows的守护程序。 2、containerd管理其主机系统的完整容器生命周期,从图像传输和存储到容器执行和监督,再到低级存储,再到网络附件等。 特征: 1、OCI Image Spec支持 2、图像推拉支持 3、用于创建,修改和删除接口的网络基元 4、多租户支持CAS存储全局图像 5、OCI运行时规范支持(又名runC) 6、容器运行时和生命周期支持 7、管理网络名称空间容器以加入现有名称空间 future: 截至今天,业界有一个重要的趋势,即从VM迁移到容器以部署软件应用程序。其主要原因是与VM相比,容器提供的灵活性和低成本

STL关联式容器

纵然是瞬间 提交于 2020-02-29 10:02:33
STL 序列式容器 : vector list deque forward_list stack STL 关联式容器 :里面存储数据的格式是<key,value>结构,与序列式容器相比 ,关联式容器的数据检索效率更高。 树形结构关联式容器 map multimap set multiset 底层均用红黑树实现。 键值对: 表示一组具有一一对应的关系的结构,其里面存储的是一种key_value 结构的键值对,value表示key对应的值。 map(有序) 1 map ,健值key 通常用于排序和唯一的标识元素,value和 key的类型可以不同,在 map内部,key和value通过成员类型value_type 绑定在一起,取别名为pair 2 map中的元素总是按照key值进行比较排序的 3 map中通过键值访问单个元素的速度往往比unordered_map 容器慢,但map进行迭代访问,可以得到一个有序的序列。 4 map支持下表访问 【】 因为map健值唯一 5 map通常底层用平衡二叉搜索树来实现(红黑树) map的类模版参数说明 class template std::map tempate<class key,//键类型 class T, 映射值类型 class Compare = less默认键值小的方式排序, , class Alloc = allocator

从零开始理解 Laravel 依赖注入

那年仲夏 提交于 2020-02-29 09:47:01
大家在使用 Laravel 的过程中,可能会感觉到在 Laravel 里很多神奇的东西会发生。依赖注入似乎是一个。但它真的很神奇吗? Laravel 容器(Container) Laravel中的服务容器其实就是一个依赖注入容器和应用程序的注册表。 Laravel Container 是用于管理依赖项和存储对象的强大工具,可用于各种目的; 可以存储对象并在Facades中使用它们。 Laravel通常使用依赖注入。即使访问 Request 我们也可以使用注入,比如。 public function __construct(Request $request) 当尝试向类中注入对象时,Container 使用 Reflection API 检查构造函数方法并检索依赖项的内容。 Reflection Api 是什么 首先,反射API从深度维度中获取能量(抽象理解就好了),因此在使用反射API时必须小心。 使用它,但不要滥用它 。当检查许多对象时,反射是昂贵的,它有可能扰乱整个宇宙(有点夸张哈)。 反射通常被定义为程序能力,主要是指检查自身并在执行时修改其逻辑。 可以从官网查看 PHP.net 具体描述。 从 PHP5开始 PHP带有一个完整的反射API,增加了对类,接口,函数,方法和扩展进行逆向工程的能力。另外,反射API提供了检索函数,类和方法的doc注释的方法。 发射在PHP中很流行