容器

Docker(快速实战流程)

℡╲_俬逩灬. 提交于 2020-02-19 20:16:08
理解 组成部分 镜像A+容器B 约等于 vmware[iso+运行ing虚拟机] 操作部分 获取镜像[核心操作]:1、3、4 整体流程 [动手跟着敲一遍熟悉流程] [4].获取镜像 对应pull docker pull nginx == docker pull nginx:latest 查看镜像 docker images [2].运行镜像 对应run docker run -d -p 80:80 -v 'pwd':/usr/share/nginx/html nginx 参数 -d 后台运行,不阻塞shell指令窗口 -it 阻塞运行[有些容器不加it会断,mysql类型就不需要[服务型的容器]] -p [外部端口]:[容器内部端口] 指定端口映射 -v [当前目录] 映射文件 --name 容器的名字 查看运行的容器 docker ps 修改容器内部 docker exec -it 92[后面的可以省略] bash 删除容器 docker rm -f 8b[后面可以省略] 修改并保存为镜像 1. [3].docker commit 92[后面可以省略](容器id) m1(镜像名字) 2. [1].dockerfile 指定基础镜像及操作(来构建镜像) docker build -t m2(镜像名字) .(dockerfile的目录) [6]将镜像保存到tar文件 docker

WPF: WrapPanel 容器的模板数据绑定(ItemsControl)

南楼画角 提交于 2020-02-19 16:33:04
问题: 有一些CheckBox需要作为选项添加到页面上,但是数目不定。而为了方便排版,我选择用WrapPanel面板来作为父容器。那现在的问题就是如何把这些控件添加到这个WrapPanel里了。我想到了两个方法,第一个是先得到控件数目,然后再动态生成并加载到这个WrapPanel里,第二个是设置数据绑定。我想第一个是可行的,但是项目中还涉及到其它问题,所以这里就选择第二个了。问题来了,在WrapPanel中并没有可以用来设置绑定并实现动态生成的东西,那要怎么解决了? 办法: 新建一个ItemsControl控件,并为ItemsSource绑定数据源,然后把ItemsControl.ItemsPanel设置为WrapPanel,最后为ItemsControl.ItemTemplate中的CheckBox.Content绑定数据。 eg: 1、创建数据源类型。 public class business { public string txt { get; set; } } 2、设置数据源 public MainWindow() { this.InitializeComponent(); List<business> che = new List<business>() { new business() { txt = "选项1"}, new business() { txt =

java面试题 - 框架

江枫思渺然 提交于 2020-02-19 15:09:59
1、servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request、response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet处理完业务逻辑后会将信息放入到response并响应到客户端。 2、springMVC的执行流程 springMVC是由dispatchservlet为核心的分层控制框架。首先客户端发出一个请求web服务器解析请求url并去匹配dispatchservlet的映射url,如果匹配上就将这个请求放入到dispatchservlet,dispatchservlet根据mapping映射配置去寻找相对应的handel,然后把处理权交给找到的handel,handel封装了处理业务逻辑的代码,当handel处理完后会返回一个逻辑视图modelandview给dispatchservlet,此时的modelandview是一个逻辑视图不是一个正式视图,所以dispatchservlet会通过viewresource视图资源去解析modelandview,然后将解析后的参数放到view中返回到客户端并展现。 3、给定一个txt文件,如何得到某字符串出现的次数

第八章 Health Check

こ雲淡風輕ζ 提交于 2020-02-19 07:41:18
8.1 默认的健康检查    每个容器启动时会执行一个进程,此进程由Dockerfile的CMD或ENTRYPOINT指定。 如果进程退出时返回码非零,则认为容器发生故障 ,K8s就会根据restartPolicy.   如果容器进程返回 非零,K8s就认为容器发生故障,需要重启。    可是有时候,容器发生了故障,但是容器并不退出。 apiVersion: v1 kind: Pod metadata: labels: test: healthcheck name: healthcheck spec: restartPolicy: OnFailure containers: - name: healthcheck image: busybox args: - /bin/sh - -c - sleep 10; exit 1  8.2 Liveness探测    Liveness探测让用户可以自定义判断容器是否健康的条件。如果探测失败,K8是就会重启容器。 apiVersion: v1 kind: Pod metadata: labels: test: liveness name: liveness spec: restartPolicy: OnFailure containers: - name: liveness image: busybox args: - /bin/sh -

Dockerfile常用命令

為{幸葍}努か 提交于 2020-02-18 15:26:44
FROM :基础镜像,当前新镜像是基于那个镜像的 MAINTAINER :镜像维护者的姓名和邮箱 RUN :容器构建时需要运行的命令 EXPOSE :当前容器对外暴露出的端口 WORKDIR :指定在创建容器后,终端默认登陆进来的工作目录 ENV :用来在构建镜像过程中设置环境变量 ADD :将宿主机目录下的文件拷贝进镜像,并且ADD命令会自动处理URL和解压tar压缩包 COPY :类似ADD,拷贝文件和目录到镜像。 VOLUME :容器数据卷,用于数据保存和和持久化工作 CMD :指定一个容器启动时要运行的命令。( Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替代 ) ENTRYPOINT :指定一个容器启动时需要运行的命令( ENTRYPOINT目的和CMD一样,都是在指定容器启动程序和参数。但是ENTRYPOINT 和CMD不同,不会被docker run之后的参数替代而是会在最后追加命令 ) Dokcerfile构建镜像命令格式 //最后的 点 表示当前目录,会在当前目录找Dockerfile文件然后构建镜像 docker build -t 新镜像名:自定义版本号 . 最后给大家推荐一篇博客,我觉得对于dockerfile的介绍很贴切 https://www.cnblogs.com/edisonchou/p

spring ioc 源码解析

∥☆過路亽.° 提交于 2020-02-18 15:25:09
Spring IOC的初始化流程 1、项目从 ApplicationContext app = new ClassPathXmlApplicationContext(“applicationContext.xml”); 2、找到工厂实现类【ClassPathXmlApplicationContext】中对应的构造方法,执行ioc容器初始化: 如下: *使用给定的父类创建一个新的ClassPathXmlApplicationContext, 从给定的XML文件中加载定义。 * @param configLocations资源位置数组 是否自动刷新上下文, 加载所有bean定义并创建所有的单例。 *或者,在进一步配置上下文之后手动调用refresh。 * @param父上下文 如果上下文创建失败,@抛出BeansException * @see # refresh () <ignore_js_op> 3、找到工厂抽象父类【AbstractApplicationContext】中的【refresh】方法: 3.1.该方法实现解析xml配置文件内容,封装成BeanDefinition对象,注册到BeanFactory中 3.2.该方法实现一些基础组件的注册:bean后置处理器组件、监听器组件、国际化资源组件 3.3.该方法实现bean对象的真正实例化。细节:初始化全部【singleton

Docker01

假装没事ソ 提交于 2020-02-18 14:14:39
目录 1.Docker是什么 2.Docker与虚拟化 3.Docker虚拟化的好处 4.核心概念 5.CentOS7 安装docker(在线方式) 6.镜像 7.Docker容器 8.查看Docker容器内部信息 9.扩展 1.Docker是什么 Docker是一个由GO语言写的程序运行的“容器” ( Linux containers, LXCs ) , 它是完整的一套容器管理系统 Docker提供了一组命令 , 让用户更加方便直接地使用容器技术 , 而无需要过多关心底层内核技术 注 1 :什么是容器 一个容器就相当于一个虚拟机 注 2 :docker用途,目前有三大类 1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境 2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容 3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构 2.Docker与虚拟化 传统来看,虚拟化既可以通过硬件模拟来实现,也可以通过操作系统软件来实现 而容器技术则更为优雅, 它充分利用了操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化 因此,有人甚至把它称为 “新一代的虚拟化”技术,并将基于容器打造的云平台亲切地称为“容器云”毫无疑问, Docker 正是众多容器技术中的佼佼者

读书笔记-哪来这么多问题

ε祈祈猫儿з 提交于 2020-02-18 13:06:05
我们为什么需要pod? 1. 解决具有超亲密关系容器之间的成组调度问题 :比如在存在A、B、C三个容器,这三个容器之间基于socket和文件交换进行通信,在docker swarm中,可以在这三个容器之间设置affinity约束来要求这三个容器必须调度 到同一个节点,但是往往就存在容器A和B调度在某个节点,而这个节点剩余的资源却又不足与调度容器C的情况。Mesos中有一个资源囤积(resource hoarding)的机制,会在所有设置了 Affinity 约束的任务都达到时,才开始对它们统一进行调度,但是调度效率 难免降低。在 Google Omega 论文中,则提出了使用乐观调度处理冲突的方法,即:先不管这些冲突,而是通过精心设计的回滚机制在出现了冲突之后解决问题,而这种复杂的机制却难于掌握。pod作为Kubernetes里的原子调度单位,统一按照Pod而非容器的资源需求计算来执行调度。 2. 支持容器设计模式 :pod作为一个逻辑概念,通过一个中间容器pause,让业务容器通过join namespace的方式加入到pause中的namespace。比如多个业务容器之间由于都加入到了Network Namespace中,所以他们可以使用localhost进行通信,如果需要为kubernetes 开发一个网络插件,也只需要关心如何配置pause容器的Network

IOC和DI 控制反转和依赖注入

此生再无相见时 提交于 2020-02-18 08:20:30
首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846 1.1、IoC是什么   Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:   ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。   ●为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。  

php内存回收机制的学习

丶灬走出姿态 提交于 2020-02-18 07:31:59
  今天朋友去面试,回来问了一下怎么样,结果他说一脸懵逼,看来我们平时还是学习的太少了啊。于是比较好奇,果断问了一下都有哪些问题,朋友说第一个问题就是“描述PHP的垃圾回收机制”,我当时听了也是一脸茫然,因为平时我们业务逻辑写的太多,很少去关注这些,但是没办法,既然有人问这个问题,看来还是很有必要了解一下的。于是马上搜了一下,网上资料文章很多,看了几篇后加上自己的一些理解记录一下。   首先看了一下官方手册,只有php5.3版本以后的才有了所谓的新的垃圾回收机制GC,那么以前是怎么干的呢?以前是基于引用计数的方式,这里就需要提一下引用计数的知识,官方手册里面说php的每个变量都是存在一个叫做zval的容器里面,这个容器不仅包含了这个变量的值和类型,还包含了另外两个重要的信息,“is_ref”和“refcount”,“is_ref”看名字就应该知道大概和引用相关,它是一个bool值,如果这个值是true那么代表这是一个引用变量,否则是普通变量。“refcount”指的是有多少个变量(符号)指向这个zval容器。   比如一个变量$a="test",如果我们php安装了xdebug插件并且开启了插件,就可以用xdebug_debug_zval(“a”)来显示zval里面的值。这里会输出a:(refcount=1,is_ref=0)=“test”,可以看到refcount=1