容器

docker学习笔记(1)

非 Y 不嫁゛ 提交于 2020-01-31 17:36:26
容器的基本概念 虚拟机通过中间层将一台或多台独立的机器虚拟运行在物理硬件上,而容器则是直接运行在操作系统内核上的用户空间(由于客居于操作系统,容器只能运行与底层宿主机相同或相似的操作系统) docker组件 Docker客户端和Dcoker守护进程(守护进程也称之为Docker引擎) Docker镜像(镜像是容器的源代码,体积小,易于分享) Registry(用户存储用户构建镜像的仓库) Docker容器(Docker容器是基于镜像启动起来的,容器中可以运行一个或多个进程,我们任务,镜像是Docker生命周期的构建或打包阶段,而容器是生命周期的启动或执行阶段) Docker基本命令 启动一个可交互的ubuntu实例 docker run -i -t ubuntu /bin/bash -i 保证容器标准输入打开 -t 为创建的容器分配一个伪tty -name 可以给容器命名(方便后续使用) -d 使容器成为守护式容器 列出所有的docker容器列表 docker ps -a 重新启动容器(创建容器但不启动docker create) docker start 容器ID或者容器名称 重新附着到容器上 docker attach 容器ID或者容器名称 docker 获取容器日志(注意和–log-driver的不当使用,会导致没有显示结果) docker logs 容器ID或者容器名称

Kubernetes常用命令

一世执手 提交于 2020-01-31 16:09:22
最近学习 Kubernetes ,记录下常用的命令。 常用命令 获取当前命名空间下的容器 kubectl get pods 获取所有容器l列表 kubectl get all 创建 容器 kubectl create -f kubernate-pvc.yaml 删除容器 kubectl delete pods/test-pd 或者 kubectl delete -f rc-nginx.yaml 查看指定pod跑在哪个node上 kubectl get pod /test-pd -o wide 查看容器日志 Kubectl logs nginx-8586cf59-mwwtc 进入容器终端命令 kubectl exec -it nginx-8586cf59-mwwtc /bin/bash 一个Pod里含有多个容器 用–container or -c 参数。 例如:假如这里有个Pod名为my-pod,这个Pod有两个容器,分别名为main-app 和 helper-app,下面的命令将打开到main-app的shell的容器里。 kubectl exec -it my-pod --container main-app – /bin/bash 容器详情列表 kubectl describe pod/mysql- m8rbl 查看容器状态 kubectl get svc 来源: CSDN

k8s的网络模型和CNI插件

China☆狼群 提交于 2020-01-31 14:19:51
网络栈 一个进程发起和响应网络环境(网络栈) 网卡 回环设备 路由表 iptables规则 kubernetes-cni包 在宿主机上安装CNI插件所需要的基础可执行文件(/opt/cni/bin) flannel项目对应的cni插件已经被内置了 无需单独安装 weave calico等安装插件的时候必须把对应的CNI插件的可执行文件拷贝到/opt/cni/bin下 k8s的cni(flannel)插件的安装 网络方案的本身 创建和配置网络设备 如网桥等 配置宿主机路由表 配置ARP表和FDB表 网络对应的CNI插件 配置Infra容器的网络栈 并把容器连接到CNI网桥上 CNI插件的工作原理 kubelet创建Pod的时候,第一个创建的一定是Infra容器 创建并启动容器后就会 为CNI插件准备参数,然后调用CNI插件(/opt/cin/bin下的可执行文件)配置容器网络栈 CNI插件参数的组成 1.设置CNI的环境变量CNI_COMMAND 只有ADD和DEL ADD的含义是把容器添加到CNI网络里 DEL的含义是把容器从CNI网络里移除 2.设置CNI的环境变量CNI_ARGS 通过这个参数以key-value的格式传递自定义信息给网络插件是用户实现自定义CNI协议的重要方法 3.从CNI配置文件中加载自己的默认插件的配置信息 有了这两部分参数,接下来 CNI bridge

list容器

倖福魔咒の 提交于 2020-01-31 11:27:51
导航: 1.list容器的基本概念(功能,组成,优缺点) 2.list 容器的构造函数 3.list 容器的赋值操作 4.list 容器的大小容量 5.list 容器的插入与删除 6.list 容器数据存取 7.list 容器反转和排序 ——————————————————————————————————— 1.list容器的基本概念 功能 :将数据进行链式存储。 链表 :是一种物理存储单元非连续的存储结构,数据元素中的逻辑顺序通过指针链表实现。 链表组成 :一系列的结点 结点组成 :一个是存储数据元素的数据域,另一个是存储下一个结点的地址 STL中链表是一个双向循环列表 优点 :对任意位置可以快速添加,删除元素( 动态分配,不会造成浪费 )。 缺点 :遍历没有数组遍历的快,并且占用空间比较大。 链表 中存储方式不是连续内存空间,list中迭代器只支持前移后移,属于 双向迭代器 插入删除 元素不影响迭代器失效, vector不成立 (动态分配内存对导致内存改变从而失效) ——————————————————————————————————— 2.list 容器的构造函数 list< T >v; //默认构造函数 list(v.begin(),v.end()); //将[ begin(),end())中的拷贝到本身 list(n,elem); //构造函数将n个elem数据拷贝本身

学spring第一次总结

China☆狼群 提交于 2020-01-31 08:14:06
1,Spring 概述 spring 是一个开源框架 spring 是一个IOC和AOP容器框架 spring 的特性:非侵入式,依赖注入,面向切面编程,容器,组件化,一站式。 2, IOC和DI IOC(Inversion of Control):反转控制 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。 反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。 DI(Dependency Injection):依赖注入 IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。 IOC 描述的是一种思想,而DI 是对IOC思想的具体实现. IOC容器在Spring中的实现 1)在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。 2)Spring提供了IOC容器的两种实现方式 ① BeanFactory:IOC容器的基本实现

docker拷贝宿主与容器中的文件

徘徊边缘 提交于 2020-01-31 06:12:22
从容器里面拷文件到宿主机 语法: docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 例子:容器名为ubuntu,要从容器里面拷贝的文件路为: /usr/local/tomcat/webapps/test/js/test.js , 现在要将 test.js 从容器里面拷到宿主机的 /opt 路径下面 在宿主机上面执行命令 docker cp ubuntu:/usr/local/tomcat/webapps/test/js/test.js /opt 从宿主机拷文件到容器里面 语法: docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径 例子:容器名为 ubuntu ,现在要将宿主机 /opt/test.js 文件拷贝到容器里面的 /usr/local/tomcat/webapps/test/js 路径下面 在宿主机上面执行命令 docker cp /opt/test.js ubuntu:/usr/local/tomcat/webapps/test/js 来源: https://www.cnblogs.com/haima/p/12244575.html

【Paper Reading】Learning while Reading

白昼怎懂夜的黑 提交于 2020-01-31 03:26:42
Learning while Reading 不限于具体的书,只限于知识的宽度 这个系列集合了一周所学所看的精华,它们往往来自不只一本书 我们之所以将自然界分类,组织成各种概念,并按其分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来。除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。 ——Benjamin Lee Whorf Learning and Asking 为什么选择面向对象? 机器语言、汇编语言、面向过程的语言,通过一层层地抽象,计算机语言已经足以与程序员和谐相处,作为各个专业几乎必修的C语言以足以让普 通的程序员理解并使用各种各样的计算,那么为什么还需面向对象的语言呢? 遗憾的是,以C语言为代表的“命令式”语言仍对计算机的逻辑计算有较大的依赖,归根结底,它仍然是为计算机设计的语言,只不过披上了一件更 讨人喜欢的外套。而在我们实际用C编程时,仍然需要建立起机器模型和实际待解决问题的模型之间的关联。 而面向对象的语言不同,它更像是为程序员量身打造的语言,通过把各个不同的事物当做对象,通过抽象的接口,大大减少了开发的工作量,所以 这是为程序员量身打造的语言。 为什么选择 Java ? 对于许多懵逼的初学者而言,与Java语言最像的恐怕就是C++了。究竟在Java与C++中如何选择?在众多面向对象的语言中如何选择?

Podman使用初探-以搭建LNMP-seafile-onlyoffice为情景

孤街浪徒 提交于 2020-01-31 02:00:26
CentOS8已经发布第2版了,之前刚出来,也试着用了一下,发现对于老硬件的支持性不好,而我的测试机正好在不支持的范围内,也就没有折腾。趁着centos8.1.1911发布,加之假期,再次折腾一下。 1.测试机的lspci信息: 05:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01) 09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller 这是我的三星N148上网本的网卡信息,很老的机子了,10年前的。 通过U盘进行最小化安装,在图形界面下,只能看到无线网卡,尽管安装时已经配置了无线网络的密码等,但是安装后WiFi无法自动启动,通过nmcli 发现“plugin missing”错误。搜索了一下,找到解决方法,也就是安装“NetworkManager-wifi”即可,不过还需要wpa_supplicant-2.7-1.el8.x86_64.rpm 才可以。 这里直接给出两者的下载地址 http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages

docker 创建容器时指定容器ip

99封情书 提交于 2020-01-30 19:01:59
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。 我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。 查看网络模式 navy@DEEPIN:~/Desktop$ sudo docker network ls NETWORK ID NAME DRIVER SCOPE 93c432885f6f bridge bridge local 284eae12c833 host host local 1b6b1ef2c3d7 none null local  创建一个新的bridge网络 navy@DEEPIN:~/Desktop$ sudo docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet efcbc104e9d14f2c1ae79ad17185f5de14f08f2d7a688642e9483370174221fb  查看网络信息 navy@DEEPIN:~/Desktop$ sudo docker network inspect mynet [ { "Name": "mynet", "Id

Spring学习笔记

守給你的承諾、 提交于 2020-01-30 14:23:17
一、什么是spring 1.什么是Spring spring是一个开源的轻量级的企业级框架;目前最流行的一个框架; 两个核心的思想是IOC 控制反转 (DI)和AOP 面向切面编程 ; spring是一个一站式的框架; 2.spring的特点 非侵入式的设计 :pojo(plain old java object); ioc:反转控制;Inversion of Control aop:面向切面编程;Aspect Oriented Programming 容器:spring就是一个大容器,用来创建所有bean,并且可以设置bean之间的依赖关系; 一站式:既包括控制器,又包括业务层和持久层,同时可整合其它框架; 3.开发第一个spring项目 创建一个maven项目(jar) 在maven项目中导入 spring-context(aop,core,spel,beans) 创建一个配置文件;applicationContext.xml 创建一个工厂;ApplicationContext factory=new ClassPathXmlApplicationContext("applicationcontext.xml"); 二、IOC部分 4.ioc ioc:反转控制; 对象与对象之间的依赖关系 不是由一方来控制的,而是 由第三方来控制 ; IOC(Inversion of