容器

docker之容器管理常用命令

蓝咒 提交于 2020-03-21 15:41:57
docker container top nginx01 查看容器中运行的进程 docker container exec -it nginx01 sh 连接到容器内部 docker container commit bs busybox:v2 运行的容器bs 增加了内容请 如果想保存,可以用commit 重新生成一个镜像,不过一般不建议这么做 如果要改变镜像可以用dockerfile来改变,以后也会讲dockerfile的使用。 docker container cp host_ip.txt bs:/root/ copy 主机文件到容器,也可以从容器copy到宿主机。 docker container logs -f nginx01 查看容器启动的日志,-f是实时显示和tail -f 是一样的,容器刚启动是可以查看实时日志信息用于排错很有帮助。 docker container port nginx01 查看端口映射情况 docker container stats nginx01 查看容器资源的实时占用率 docker container update --cpus 0.5 --memory 100m --memory-swap 200m bs 实时对运行中的容器做cpu内存限制。不允许只对内存做限制,还要加上swap,实时生效 docker container stop

OO第一单元总结

感情迁移 提交于 2020-03-21 04:27:05
程序结构和度量分析 第一次作业: 第一次作业的逻辑结构和实现: 第一次作业没有非法输入,所以通过传入表达式的预处理(除去所有空格和简化符号), 然后将表达式拆分成项,项拆分成因子,然后储存因子并求导输出。 第一次作业度量分析: 第一次作业UML图: 类之间存在挺大的耦合,没有使用接口,举例来说: 生成ExpressionSplitToTerm类的对象时候会直接生成TermSplitToFactor类以及生成若干个PowerExponent类的实例化对象。 第二次作业: 第二次作业加入了复合函数的求导,结构上沿用了第一次作业的结构,修改了项拆分为因子和求导的方法。 第二次作业度量分析: 在识别得到的因子的具体类型时判断过多。 第二次作业UML图: 本质上没有和第一次作业有太多的区别,只是把一个一main到底的代码拆分成几部分逻辑,分到几个类中。造成耦合化严重的结构,给第三次作业的重构埋下了隐患。 第三次作业 第三次作业没能通过本地测试。 程序BUG分析 第一次作业在互测阶段和强测上出现一个BUG。原因是传入的新项和容器里已存在的项合并同类项之后,如果其系数变为0,在合并的方法内会自动删除该项并让容器的尺寸减一;然而在寻找同类项的方法里决定是否添加新项的判断条件是遍历所有的容器项,遍历所用变量等于容器尺寸的时候代表循环结束,可以作为一个新项添入

容器化的 DevOps 工作流

自古美人都是妖i 提交于 2020-03-20 20:51:38
原文: 容器化的 DevOps 工作流 对于 devops 来说,容器技术绝对是我们笑傲江湖的法宝。本文通过一个小 demo 来介绍如何使用容器技术来改进我们的 devops 工作流。 devops 的日常工作中难免会有一些繁琐的重复性劳动。比如管理 Azure 上的各种资源,我们会使用 Azure CLI 工具。同时我们也会使用 Ansible 完成一些自动化的任务。当我们同时使用二者的时候就会碰到一些尴尬的事情:Azure CLI 依赖的 python 版本为 3.x,而 Ansible 的主流版本还在依赖 python 2.x。如果我们要同时使用二者,就需要在环境中搞一些飞机。如果团队中的每个成员都需要使用这样的工具,那么每个人的环境中都需要这些飞机!下面是一些比较类似的问题: 一些工作流在陌生的环境中不能正确的工作 在工作流中加入新的工具时,整个团队都需要获取并安装这些新的工具 运行 devops 工作流不能对当前的环境产生影响(应该允许在 build 环境中运行 devops 工作流) 工作流的变化不会对运行环境产生任何的影响 实现这些需求的最好方式就是容器技术!通过容器把我们的 devops 工作流和运行环境隔离开就可以了。文本的 demo 会演示一个非常简单的使用 Azure CLI 的工作流,我们的目标是为整个团队打造一个满足以上需求的工具集(容器镜像)

LXD 2.0 系列(四):资源控制

我与影子孤独终老i 提交于 2020-03-20 13:45:31
这是 LXD 2.0 系列介绍文章的第四篇。 LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 LXD 和 Juju LXD 和 OpenStack 调试,及给 LXD 做贡献 因为 LXD 容器管理有很多命令,因此这篇文章会很长。 如果你想要快速地浏览这些相同的命令,你可以 尝试下我们的在线演示 ! 可用资源限制 LXD 提供了各种资源限制。其中一些与容器本身相关,如内存配额、CPU 限制和 I/O 优先级。而另外一些则与特定设备相关,如 I/O 带宽或磁盘用量限制。 与所有 LXD 配置一样,资源限制可以在容器运行时动态更改。某些可能无法启用,例如,如果设置的内存值小于当前内存用量,但 LXD 将会试着设置并且报告失败。 所有的限制也可以通过配置文件继承,在这种情况下每个受影响的容器将受到该限制的约束。也就是说,如果在默认配置文件中设置 limits.memory=256MB ,则使用默认配置文件(通常是全都使用)的每个容器的内存限制为 256MB。 我们不支持资源限制池,将其中的限制由一组容器共享,因为我们没有什么好的方法通过现有的内核 API 实现这些功能。 磁盘 这或许是最需要和最明显的需求。只需设置容器文件系统的大小限制,并对容器强制执行。 LXD 确实可以让你这样做!

LXD 2.0 系列(七):LXD 中的 Docker

泄露秘密 提交于 2020-03-20 13:44:18
这是 LXD 2.0 系列介绍文章的第七篇。 LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 LXD 和 Juju LXD 和 OpenStack 调试,及给 LXD 做贡献 为什么在 LXD 中运行 Docker 正如我在 系列的第一篇 中简要介绍的,LXD 的重点是系统容器,也就是我们在容器中运行一个完全未经修改的 Linux 发行版。LXD 的所有意图和目的并不在乎容器中的负载是什么。它只是设置容器命名空间和安全策略,然后运行 /sbin/init 来生成容器,接着等待容器停止。 应用程序容器,例如由 Docker 或 Rkt 所实现的应用程序容器是非常不同的,因为它们用于分发应用程序,通常在它们内部运行单个主进程,并且比 LXD 容器生命期更短暂。 这两种容器类型不是相互排斥的,我们的确看到使用 Docker 容器来分发应用程序的价值。这就是为什么我们在过去一年中努力工作以便让 LXD 中运行 Docker 成为可能。 这意味着,使用 Ubuntu 16.04 和 LXD 2.0,您可以为用户创建容器,然后可以像正常的 Ubuntu 系统一样连接到这些容器,然后运行 Docker 来安装他们想要的服务和应用程序。 要求 要让它正常工作要做很多事情,Ubuntu 16.04

LXD 2.0 系列(一):LXD 入门

岁酱吖の 提交于 2020-03-20 12:50:16
这是 LXD 2.0 系列介绍文章的第一篇。 LXD 入门 安装与配置 你的第一个 LXD 容器 资源控制 镜像管理 远程主机及容器迁移 LXD 中的 Docker LXD 中的 LXD 实时迁移 LXD 和 Juju LXD 和 OpenStack 调试,及给 LXD 做贡献 关于 LXD 几个常见问题 什么是 LXD ? 简单地说, LXD 就是一个提供了 REST API 的 LXC 容器管理器。 LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。 LXD 和 Docker/Rkt 又有什么关系呢 ? 这是一个最常被问起的问题,现在就让我们直接指出其中的不同吧。 LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD 容器实际上如在裸机或虚拟机上运行一般运行了一个完整的 Linux 操作系统。 这些容器一般基于一个干净的发布镜像并会长时间运行。传统的配置管理工具和部署工具可以如在虚拟机、云实例和物理机器上一样与 LXD 一起使用。 相对的, Docker 关注于短期的、无状态的、最小化的容器,这些容器通常并不会升级或者重新配置,而是作为一个整体被替换掉。这就使得 Docker 及类似项目更像是一种软件发布机制,而不是一个机器管理工具。 这两种模型并不是完全互斥的。你完全可以使用 LXD 为你的用户提供一个完整的

写给大家看的“不负责任” K8s 入门文档

六眼飞鱼酱① 提交于 2020-03-20 12:35:24
作者 | 邓青琳(轻零) 阿里巴巴技术专家 导读 :本文转载自阿里巴巴技术专家邓青琳(轻零)在内部的分享,他从阿里云控制台团队转岗到 ECI 研发团队(Serverless Kubernetes 背后的实现基石),从零开始了解 K8s,并从业务发展的视角整理了 K8s 是如何出现的,又是如何工作的。 前言 2019 年下半年,我做了一次转岗,开始接触到 Kubernetes,虽然对 K8s 的认识还非常的不全面,但是非常想分享一下自己的一些收获,希望通过本文能够帮助大家对 K8s 有一个入门的了解。文中有不对的地方,还请各位老司机们帮助指点纠正。 其实介绍 K8s 的文章,网上一搜一大把,而且 Kubernetes 官方文档也写的非常友好,所以直接上来讲 K8s,我觉得我是远远不如网上的一些文章讲的好的。因此我想换一个角度,通过一个业务发展的故事角度,来讲 K8s 是怎么出现的,它又是如何运作的。 故事开始 随着中国老百姓生活水平的不断提高,家家户户都有了小汽车,小王预计 5 年后,汽车报废业务将会迅速发展,而且国家在 2019 年也出台了新政策 《报废机动车回收管理办法》 ,取消了汽车报废回收的“特种行业”属性,将开放市场化的竞争。 小王觉得这是一个创业的好机会,于是找了几个志同道合的小伙伴开始了创业,决定做一个叫“淘车网”的平台。 故事发展 淘车网一开始是一个 all in

杉岩数据企业云存储解决方案

二次信任 提交于 2020-03-20 12:10:19
虚拟化技术在企业私有云IT基础架构中仍然占据重要地位,同时,为了进一步提升应用效率,越来越多的生产环境也正在逐步变革,从以虚拟机为中心的架构向以容器和微服务为中心的云原生架构过渡,在这个过程中,存储如何有效支撑各种云主机应用与微服务应用,对于企业的私有云数据中心提出了新的挑战。 企业面临的问题 存储设施七国八制,硬件锁定缺少弹性 多种云平台对于存储的要求各不相同,块/文件/对象存储对应不同类型的应用,对外提供不同的服务接口,一种存储设备无法满足多种类型的云平台存储需求,而且传统存储在扩展性方面不能满足云时代大规模云平台对存储在线弹性扩容的需求,在可维护性方面则面临硬件架构绑定、运维复杂、难以维保等问题,而且这些问题会随着存储设备种类和数量的增多进一步放大。 业务调度变更频繁,资源不能共享 随着开发测试虚拟机以及容器、微服务平台在企业私有云平台的上线,大型企业的应用快速迭代、频繁发布对存储系统的支撑提出了严峻挑战,不同业务的数据保存在不同厂商的存储设备中,数据流动性差,不仅导致存储空间及性能资源浪费严重,数据灾备方案也很难统一化。 开源产品难以维护,不能实现企业级产品化 基于开源虚拟化技术的云平台如OpenStack为众多客户提供了快速构建私有云基础设施的能力,但是存储部分却不一样,开源的存储系统如Ceph虽然可以小规模部署试用, 但在大规模商用时会遇到很多问题

Spring笔记系列--1

末鹿安然 提交于 2020-03-20 10:30:41
什么是Spring? Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整 合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架 什么是IOC(控制反转)? 第一次看到IOC是在大内老A的一篇.net Core框架解析上看到的,我的理解是:IOC是一种框架设计思想,它定义了一个容器,将原本由程序做的一些操作放在容器中,交由框架来实现~ 这样说可能有点抽象,举个简单的例子,我们在使用MVC框架的时候,它的流程是通过路由到指定的控制器,再通过控制器来激活相应的View视图。我们简单的剖析一下它的实现(大内老A的文章里有讲): 首先我需要加一个监听器来监听用户的请求(java有三大组件,监听器,拦截器,servlet,.net中不太确定,应该也差不多),然后需要定义一个控制器根据用户请求来找对应的视图,再一个视图解析器用来显示视图。当一个请求过来的时候,如果用程序来实现我们这个流程,需要先实例化控制器,再实例化视图