容器

Docker数据挂载

丶灬走出姿态 提交于 2019-12-10 19:33:41
Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新不会影响镜像 数据卷默认会一直存在,即使容器被删除 注意:数据卷的使用,类似于Linux下目录的使用或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。 Docker中提供了两种挂载方式,-v 或—mount,推荐使用 —mount,因为—mount 更简洁易懂。 创建一个数据卷: docker volume create my-volume 查看指定数据卷的信息: docker volume inspect my-volume 启动一个挂载数据卷的容器: 在用 docker run 命令的时候,使用—mount 来将数据卷挂载到容器,在一次 docker run 中可以挂载多个数据卷。 docker run --name test-web -d -p 8080:8080 \ -v my-volume:/webapp \ test-web:latest # 或者 docker run --name test-web -d -p 8080:8080 \ -

docker容器中安装vim 、telnet、ifconfig命令

情到浓时终转凉″ 提交于 2019-12-10 18:57:41
一、在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found 问题:apt-get install vim安装vim 命令时,提示:如下内容 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package vim 解决办法:apt-get update 这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。 二、安装vim命令 apt-get install vim 三、安装telnet命令 apt-get install telnet 四、安装ifconfig命令 apt-get install net-tools 来源: https://www.cnblogs.com/faithH/p/12018453.html

k8s中关于初始化容器的理解

走远了吗. 提交于 2019-12-10 18:41:25
k8s的初始化容器(initContainer)无论何时何地,优先级都是高于容器(container)的。无论容器写在初始化容器前还是写在初始化容器后,最先执行的都是初始化容器。只有初始化容器执行成功后才可以启动容器。 所以,初始化容器的应用场景应该是多pod。比如:mysql和业务分开两个pod。此时,业务pod添加初始化容器,初始化容器执行telnet,检查mysql是否启动了。若mysql启动,则业务pod启动;否则业务pod等待mysql启动。 附: 初始化容器监听指定ip的3500端口,若端口已经监听了,则监听3501端口;否则等待。 apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: test1 image: alpine:3.7 command: ['nc','-l','3501'] initContainers: - name: init-test1 image: alpine:3.7 command: ['sh', '-c', 'while true; do nc -z 192.168.88.212 3500;if [[ 0 -eq `echo $?` ]];then echo "aaa";break; fi;echo "bbb"; sleep 2; done;'] 来源:

用Docker构建⼀个区块链工作和开发环境(上)

泪湿孤枕 提交于 2019-12-10 16:39:55
预读先知 区块链(Blockchain)是一种安全的在线交易方式。区块链是一种分布式数字账目,在全球数以千计的计算机上记录交易,使得注册的交易不能被追溯改变。他们通过集体自利的大规模协作进行认证。结果是产生一个以参与者的数据安全的不确定性为边际的健壮的工作流。区块链的使用消除了来自数字资产的无限再现性的特性。它确认每个单位的数字现金只花了一次,解决了长期存在的双重支出问题。区块链被描述为价值交换协议。这种价值交换可以更快,更安全,更便宜地通过区块链完成。区块链可以分配所有权,因为它提供了强制提供和接受的记录。 以太坊(Ethereum)是一个运行智能合约的分布式平台:保证应用程序完全按照程序运行,没有任何宕机,审查,欺诈或第三方干扰的可能性。 这些应用程序运行在一个定制的区块链上。这使开发者能够创建市场,存储债务或承诺的记录,根据很久以前给出的指令转移资金(如遗嘱或期货合约)以及很多尚未出现的未来应用场景,所有的这些都没有中间人或者交易对手风险。 在传统的服务器体系结构上,每个应用程序都必须设置自己的服务器,在独立的孤岛中运行自己的代码,使数据共享变得困难。如果单个应用遭到入侵或离线,许多用户和其他应用都会受到影响。 在区块链上,任何人都可以设置一个节点,复制所有节点的必要数据以达成协议,并由用户和应用程序开发人员进行补偿。这允许用户数据保持私有和应用程序分散像互联网应该工作。

微服务

无人久伴 提交于 2019-12-10 15:49:00
单体应用   早些年,各大互联网公司的应用技术栈大致可分为 LAMP(Linux + Apache + MySQL + PHP)和 MVC(Spring + iBatis/Hibernate + Tomcat)两大流派。无论是 LAMP 还是 MVC,都是为单体应用架构设计的,其优点是学习成本低,开发上手快,测试、部署、运维也比较方便,甚至一个人就可以完成一个网站的开发与部署。   以 MVC 架构为例,业务通常是通过部署一个 WAR 包到 Tomcat 中,然后启动 Tomcat,监听某个端口即可对外提供服务。早期在业务规模不大、开发团队人员规模较小的时候,采用单体应用架构,团队的开发和运维成本都可控。   然而随着业务规模的不断扩大,团队开发人员的不断扩张,单体应用架构就会开始出现问题。我估计经历过业务和团队快速增长的同学都会对此深有感触。从我的角度来看,大概会有以下几个方面的问题。   想要解决上面这些问题,服务化的思想也就应运而生。 什么是服务化   用通俗的话来讲,服务化就是把传统的单机应用中通过 JAR 包依赖产生的本地方法调用,改造成通过 RPC 接口产生的远程方法调用。一般在编写业务代码时,对于一些通用的业务逻辑,我会尽力把它抽象并独立成为专门的模块,因为这对于代码复用和业务理解都大有裨益。   以微博系统为例,微博既包含了内容模块,也包含了消息模块和用户模块等

java容器源码分析(六)——HashSet

情到浓时终转凉″ 提交于 2019-12-10 15:43:55
本文内容 HashSet概述 HashSet源码分析 HashSet概述 HashSet是Set的一种实现,其底层是用HashMap实现的,整个HashSet看起来就像一个包装类! HashSet的继承图如下: HashSet继承了Set、Abstract类,实现了Cloneable 、Serializable 接口。 HashSet实现 看一下HashSet的属性 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the backing Map private static final Object PRESENT = new Object(); 底层直接用了HashMap.PRESENT就是用来填充map的value。为何不用null呢?? 默认构造函数: public HashSet() { map = new HashMap<>(); } public HashSet(Collection<? extends E> c) { map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16)); addAll(c); } public HashSet(int initialCapacity,

Java集合容器系列08-HashSet

人盡茶涼 提交于 2019-12-10 15:43:44
一、HashSet的介绍 HashSet是一个依赖于HashMap的Set接口实现,容器的元素存储和操作都是基于内部的一个HashMap实例实现,因为这个原因,它不保证Set中元素的迭代顺序特别是不保证该顺序的恒久不变,允许插入null元素。该类可以为基本的集合操作提供稳定的性能保证,这些基本操作包括add、remove、contains和size,假定哈希函数正确地将元素分布在底层HashMap的槽中,那么对此HashSet进行迭代所需的时间与元素的个数和底层HashMap的槽的个数成正比的,所以迭代性能很重要的话,就不要将初始容量设置得太高(或者负载因子设置得太低)。注意HashSet不是线程安全的容器,如果有多个线程访问该容器,且至少有一个线程对容器做了结构性修改,那么它就必须在外部保证同步,这通常是通过对操作该容器的代码块加锁实现的,如果没有则可以使用Collections.synchronizedSet在包装它作为一个线程安全的容器使用。HashSet的iterator返回的迭代器对象Iterator是fail-fast(快速失败)的,如何理解,即在该迭代器创建之后任何时间对该容器做了结构性修改(除了基于iterator.remve方法删除容器元素之外)都将导致迭代器遍历时抛出ConcurrentModificationException异常,这种快速失败行为无法绝对保证

jQuery Mobile数据属性

随声附和 提交于 2019-12-10 15:40:15
Jquery mobile框架使用html5的 data- 属性来使初始化标记和配置组件。这些属性全部都是可选的,并且支持手动调用插件。为了避免命名上的和与其他也使用html5的 data- 属性插件与框架的冲突,可以使用全局设置来自定义命名空间。 按钮 通过 data-role="button" 来标记按钮。基于链接的按钮和表单的button元素会被自动渲染, 无需data-role属性。 data-corners true | false data-icon home | delete | plus | arrow-u | arrow-d | check | gear | grid | star | custom | arrow-r | arrow-l | minus | refresh | forward | back | alert | info | search data-iconpos left | right | top | bottom | notext data-iconshadow true | false data-inline true | false data-shadow true | false data-theme swatch letter (a-z) 多个按钮按钮的情况下,可以给这些按钮的容器添加 data-role="controlgroup"

kvm技术与容器的区别

江枫思渺然 提交于 2019-12-10 15:32:07
没有虚拟化技术的原始年代 我们仔细想想,在没有计算虚拟化技术的“远古”年代,如果我们要部署一个应用程序(Application),一般的步骤是怎么样的? 第一步肯定是先要准备一台物理服务器,然后在物理服务器上安装一个操作系统(Operating System),有了操作系统之后,便在操作系统上安装运行我们的应用程序,这个过程可以用下面的图来表示: 物理服务器部署应用示意图 那么,这种方式有什么问题呢?其实,在物理机上部署应用有以下几个缺点: 部署非常慢:因为我们得先准备硬件服务器,接着还要安装操作系统,然后再部署应用程序,而且应用程序还有很多的依赖软件,所以这个过程是比较慢的。 成本非常高:主要是物理器成本太高,即使是部署一个简单的应用,也需要一台服务器。 资源浪费:如果应用太简单,也容易浪费硬件资源,比如CPU和内存 迁移和扩展太慢:如果需要迁移应用,或者扩展应用,都要再准备其他的物理服务器,过程很麻烦,也很慢。 那么有什么办法可以解决这些问题呢?答案便是虚拟化技术。 使用虚拟机部署应用程序的年代 什么是虚拟化技术 谈到计算机的虚拟化技术,我们直接想到的便是虚拟机,虚拟机允许我们在一台物理计算机模拟出多台机器,简单地理解,虚拟化技术就是在一台物理计算机上,通过中间虚拟软件层Hypervisor隔离CPU、内存等硬件资源,虚拟出多台虚拟服务器,这样做的话

【杭研大咖说】王新勇:死磕云原生的“懒人”

僤鯓⒐⒋嵵緔 提交于 2019-12-10 14:53:20
在生活中,作为户外运动爱好者,王新勇常常于周末爬山,享受攀越高峰之后见到的无限风光 ;在工作上,作为网易杭州研究院(网易杭研)的系统开发专家,王新勇则钟情于征服云计算领域的一座座“山峰”。业务部门邀请他去排查问题,常常惊异于他找出异常的速度和解决故障的效率,心悦诚服地称他为“大神”。 然而,在王新勇看来,自己不过是一个“懒人”。因为“懒”于投简历、笔试、面试,研究生一毕业就早早锁定声名在外、环境独特的网易杭研的工作;因为“懒”于做重复的事情,尽量把重复的需求都写成代码,尽量采用自动化(或者说DevOps)工具;因为“懒”于查阅所需要的知识,把常用的技术细节、工具用法都装到自己大脑之中……正是这些懒人举动,让他的工作事半功倍,面对难题时举重若轻。 网易杭州研究院系统开发专家 王新勇 求职“懒”:做有趣的事 2013年,王新勇研究生毕业。相比一些同学不停地跑场,不停地投简历,不停地笔试、面试,王新勇显得比较懒,在拿到网易的offer(也是第一个offer)之后,便决定放弃其他所有的面试和笔试。一来网易是成熟的大公司,工作环境、福利业界有名;二来杭州离安徽老家不远;三来实习期为多拿几份offer奔波太累。 当然,“懒”也不是无条件的,前提是这份工作足够“有趣”。在王新勇的认知里,“有趣”的莫过于底层开发。 在学校,在实习期间,他鼓捣的都是与网络、分布式通信中间件相关的东西