容器

spring-day01-概述-IOC

岁酱吖の 提交于 2020-01-11 17:27:43
文章目录 一、spring概述 二、spring的EJB的区别(了解) 三、耦合和解耦 四、 解耦代码--自定义IOC(了解) 一、spring概述 spring 的 开源的轻量级框架 spring的两大核心:IOC ,AOP 二、spring的EJB的区别(了解) EJB可以说像是一个Web Service,但也不完全是,比如EJB将编写好的业务组件放置在EJB容器上,然后提供接口给客户端访问;但是功能不仅限如此,EJB标准中提供了很多规范等,而这些规范只有在EJB容器才能正常运行。 EJB是重量级框架 Spring容器取代了原有的EJB容器,因此以Spring框架为核心的应用无须EJB容器支持,可以在Web容器中运行。 Spring容器管理的不再是复杂的EJB组件,而是POJO(Plain Old Java Object) Bean。 Spring轻量级框架 三、耦合和解耦 1. 什么是耦合 模块之间的关联程度, 依赖程度 2. 什么是解耦 降低模块之间的耦合度(依赖关系) 3. 解耦的目的 编译器不依赖(编译没有语法错误),运行期才依赖(运行可能报错) 4. 解耦思路 1) 把全限类名都放到配置文件中 2) 通过工厂帮助创建对象 四、 解耦代码–自定义IOC(了解) spring内所有的类都叫bean对象 在这里插入代码片 来源: CSDN 作者: 树叶子_ 链接:

Docker主机磁盘垃圾清理

孤人 提交于 2020-01-11 14:39:11
  对于Docker来说,存在镜像、容器、存储卷和网络这些对象。因此,也就会生产相对应的这些对象,这些对象会占据磁盘空间。当这些对象不在被使用时,为了不占据额外的磁盘空间,就需要对这些对象进行清理,即进行垃圾清理。在docker 1.13版本之后,提供了对各种对象的prune命令,也提供了清理所有对象类型的docker system prune命令。但在docker 1.13之前的版本,则需要提供其他方式进行垃圾清理。 一、docker v1.13之后版本的垃圾清理 1.1 容器   在停止容器时,系统并不会知道删除这个容器,除非在运行此容器时设置了–rm字段。停止后的容器仍然会占据磁盘的存储空间,通过docker container prune能够删除这些被停止后的容器。 $ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y   执行此命令时,默认会提示是否继续。如果在执行命令是设置了-f或–force字段,则会直接删除已所有已停止的容器。默认情况下,此命令执行时会删除所有的已停止的容器,也可以通过设置–filter字段,来过滤所要删除的容器。例如,下面的命令仅仅删除停止超过24小时的容器。 $

2.docker常用命令

家住魔仙堡 提交于 2020-01-11 13:21:09
一、安装相关 #查看docker是否安装  rpm -q docker #CentOS下安装docker sudo yum install docker #启动 Docker   systemctl start docker #查看docker信息 systemctl status docker #停止 Docker   systemctl stop docker #重启 Docker   systemctl restart docker #重启docker后台服务 sudo service docker restart 二、有关docker容器(以gcc为例) #首次开启docker容器  docker run -itd --name=gcc --net=host -h gcc --privileged -v /mnt/hgfs:/mnt/hgfs hub.51chain.net/library/gcc_dev:5.4.0 #开启docker容器 docker start gcc docker run和docker start的区别:前者相当于两步操作——将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。 #进入到容器中   docker exec -it gcc bash #终止docker容器运行  docker

C++知识点(十)泛型程序设计与C++STL标准模板库

十年热恋 提交于 2020-01-11 08:34:15
1.泛型程序设计 把代码从特定的数据结构中分离出来,使得它不依赖于特定的数据结构而更加通用 容器->迭代器->算法 适配器 2.概念:用于界定具备一定功能的数据类型 comparable:可比较 Assignable:可赋值 Sortable:可比较且可赋值 3.模型:符合一个概念的数据类型就是该概念的模型 e.g. int 为comparable概念的模型 4.用概念做模板参数名 5.STL:standard template library 容器、迭代器、函数对象、算法 容器<->迭代器(作为算法的参数)->算法 ->函数对象(作为算法的参数) 容器:头文件<vector>     顺序     有序关联     无序关联 容器适配器:栈stack 队列queue 优先队列priority_queue 迭代器:泛型指针,包含头文件<iterator> ++,*,->,-- 函数对象:泛化的函数 ,头文件<functional> 算法:头文件<algorithm> transform 6.迭代器:泛型指针 输入流迭代器 istream_iterator <T> (cin) *(p++) 输出流迭代器 ostream_iterator <T> (cout,“输出间隔”) *(p++)=x 前向迭代器:输入&输出迭代器,且可单向遍历 双向迭代器:输入&输出迭代器,且可双向遍历

关于Docker的挂载

六眼飞鱼酱① 提交于 2020-01-11 06:14:51
 底层原理不懂就上手,上手出了问题就懵逼,最近在对接阿里云时遇到Docker存储驱动的神坑,爬了几天爬不出来,最后发现是节点中Docker存储驱动的问题,由此引发此次学习,避免类似问题再次懵逼。 文章目录 1. Volumes(最推荐的挂载方式) 2. Bind mounts 3. tmpfs mounts 4. named pipes 5.关于语法 5.1 -v/--volume 5.2 --mount  关于镜像images,核心首先必须明确一点, 镜像都是只读的 ,如果需要进行写操作,必须在该镜像上创建一个新的镜像层(我们所有的写操作其实都是在一个可写的镜像层上操作的)。同时镜像也是共享的,那些依赖于同一个 image 的多个容器,并不会将单独复制需要的镜像到自己的容器中进行启动,那样会浪费巨大的空间,实际节点上只会有一个镜像,多个容器是共享这一个镜像的。存储驱动可以将容器中的数据进行持久化同时避免性能问题。存储驱动允许我们在容器的可写层创建数据,这些数据在容器销毁后也就没有了,且这些文件的读写速度都比本地文件系统的性能低。  默认情况下,容器内所有创建的文件都存储在一个可写层,所以这些文件仅仅存活于容器运行时,一旦容器被销毁这些文件也会被销毁。容器的可写层和宿主机器紧密耦合,很难将可写层的文件或数据迁移到非宿主机器外的地方。要将数据写入容器的可写层必须要有一个存储驱动

docker概况

房东的猫 提交于 2020-01-11 03:18:04
文章目录 1.1什么是容器 1.2什么是Docker 1.3 docker的优点 1.4 docker缺点 2Docker镜像 2.1什么是镜像 2.2docker 命令 1.1什么是容器 容器技术已经成为应用程序封装和交付的核心技术 容器技术的核心有以下几个内核技术组成 由于是在物理机上实施隔离,启动一个容器 可以像启动一个进程一样快速 1.2什么是Docker docker 是完整的一套容器管理系统 docker 提供了一组命令 让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术 1.3 docker的优点 1.4 docker缺点 安装docker包 2Docker镜像 2.1什么是镜像 在 docker中容器是基于镜像启动的 镜像是启动容器的核心 镜像采用分层设计 使用快照的COW技术 确保底层数据不丢失 docker 官方下载地址 https://hub.docker.com/ 2.2docker 命令 docker images 查看镜像 docker search busybox 查看可以下载镜像 docker pull docker.io/busybox 下载docker.io/busybox docker push docker.io/busybox 上传镜像 docker save docker.io/busybox:latest -o

Spring DI容器的核心原理

五迷三道 提交于 2020-01-11 02:50:41
DI:依赖注入 一 依赖注入的时间: 当Spring IOC 容器完成了Bean 定义资源的定位、载入和解析注册以后,IOC 容器中已经管理类Bean 定义的相关数据,但是此时IOC 容器还没有对所管理的Bean 进行依赖注入,依赖注入在以下两种情况 发生: 1)、用户第一次调用getBean()方法时,IOC 容器触发依赖注入。 2)、当用户在配置文件中将元素配置了lazy-init=false 属性,即让容器在解析注册Bean 定义 时进行预实例化,触发依赖注入。 二 DI 以下可结合源码来看: 寻找入口: AbstractBeanFactory 的getBean() 开始实例化: AbstractAutowireCapableBeanFactory 类实现了ObjectFactory 接口,创建容器指定的Bean 实例对象,同时还对创建的Bean 实例对象进行初始化处理。createBean() 选择Bean 实例化策略:在createBeanInstance()方法中,根据指定的初始化策略,使用简单工厂、工厂方法或者容器的自动装配特性生成Java 实例对象。 执行Bean 实例化:在使用默认的无参构造方法创建Bean 的实例化对象时,方法getInstantiationStrategy().instantiate(

Docker网络模式详解

不羁岁月 提交于 2020-01-11 02:19:05
docker有四种网络模式:Bridge、Host、Container、None。docker默认是Bridge。实际中一般都是使用Bridge和Host Bridge模式 ,当docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥。 查看容器信息 Host模式 :如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。这里我拿tomcat测试下 由于是新的linux,没有开放8080端口,这里开启下 (firewall-cmd --add-port=8080/tcp --permanent、firewall-cmd --reload) (docker run -d --net=host --name to1 94e31e5297d1) container模式:这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己网卡,配置自己的IP,而是和一个指定的容器共享IP,端口范围。 首先使用默认模式创建一个容器 (docker run -d --name nginx -p 80:80 -p 8080:8080

Docker 容器资源隔离 namespace(十)

纵饮孤独 提交于 2020-01-11 00:39:45
一、简介 Linux Namespace 是 Linux 提供的一种内核级别环境隔离的方法。不知道你是否还记得很早以前的 Unix 有一个叫 chroot 的系统调用(通过修改根目录把用户 jail 到一个特定目录下),chroot 提供了一种简单的隔离模式:chroot 内部的文件系统无法访问外部的内容。Linux Namespace 在此基础上,提供了对 UTS、IPC、mount、PID、network、User 等的隔离机制。 举个例子,我们都知道,Linux 下的超级父亲进程的PID是1,所以,同 chroot 一样,如果我们可以把用户的进程空间 jail 到某个进程分支下,并像 chroot 那样让其下面的进程 看到的那个超级父进程的 PID 为1,于是就可以达到资源隔离的效果了(不同的 PID namespace 中的进程无法看到彼此) Linux Namespace的6大类型 类型 功能说明 Mount Namespace 提供磁盘挂载点和文件系统的隔离能力 IPC Namespace 提供进程间通信的隔离能力 Network Namespace 提供网络隔离能力 UTS Namespace 提供主机名隔离能力 PID Namespace 提供进程隔离能力 User Namespace 提供用户隔离能力 二、Mount Namespace Mount

Docker——Cgroup资源限制

佐手、 提交于 2020-01-10 22:24:21
Docker Cgroup资源配置方法 Cgroup是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制 Docker通过Cgroup来控制容器使用的资源配额,包括 cpu、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制 Cgroup子系统 - blkio:设置限制每个块设备的输入输出控制 - cpu:使用调度程序为cgroup任务提供cpu的访问 - cpuacct:产生cgroup任务放的cpu资源报告 - cpuset:如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存 - devices:允许或拒绝cgroup任务对设备的访问 - freezer:暂停和恢复cgroup任务 - memory:设置每个cgroup的内存限制以及产生内存资源报告 - net_cls:标记每个网络包以供cgroup方便使用 - ns:命名空间子系统 - perf_event:增加了对每个group的监控跟踪的能力,可以监控属于某个特定的group的所有线程以及运行在特定cpu上的线程 使用Stress工具来测试cpu和内存 使用Dockerfile创建一个stress工具镜像 [root@localhost ~]# mkdir /opt/stress [root@localhost ~]# cd /opt/stress/ [root