容器

2. 第 2 章 抽象数据类型

孤人 提交于 2020-01-23 00:14:53
1. 算法与数据结构应该以巧妙的方式结合起来,达到解决问题的目的,并提高效率。 2. 数据的静态组织和动态的操作算法,构成了ADT。一旦选择了某种数据结构,ADT的性能也可以确定。由此得知,抽象数据类型的挑选本质上是确定其数据结构。 3. 用数组存放数据,会出现空间超出不够用或浪费用不完的情况(即使是动态分配的数组,也会出现这种情况)。 vector 则很好的解决了这个问题(它是一个动态分配的数组,但是提供了很好的动态化策略)。 4. 如果数据在数组中有序存储,那么增删都会比较麻烦。(vector 在内存中也是连续存储的)。为了应对数据动态变化,必须要打破连续存储的物理形态,于是链表应运而生( list 容器)。 5. 二叉查找树结合查找和链接,使得增删元素可以高效的实现。需要注意,平衡性是二叉查找树的重要指标,一旦失去平衡,查找效率就会急剧下降,可以限定结点的平衡程度来提升查找性能。 6. 在观察不同数据结构实现的同时,应该发现数据结构不仅给出静止的逻辑结构,更应该发现它给出了从一个状态到另一个状态的迁移规则。 7. 从不同的数据结构中进行选择,标准是通过分析完成任务的总时间来确定使用何种抽象数据类型。 8. STL是一套由模板写成的标准库,给出了多种常用的容器。容器可以说是抽象数据类型,它能容纳任何类型的对象,并在内部按照一定的数据结构将对象组织起来。 9.

01Docker简介

試著忘記壹切 提交于 2020-01-22 22:33:04
文章目录 1、Docker是什么 1.1、Docker为什么会出现 1.2、Docker理念 1.3、Docker是什么 2、Docker能做什么 2.1、之前的虚拟化技术 2.2、容器虚拟化技术 2.3、Docker能做什么 1、Docker是什么 镜像,环境打包 https://docs.docker.com/get-started/ 1.1、Docker为什么会出现 一款线上产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。 Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。 环境配置如此麻烦,换一台机器,就要重来一次,费时费力。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作的”问题。 传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让运维团队得以部署应用程式,开发需要清除的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此

Docker 查看容器 IP 地址

穿精又带淫゛_ 提交于 2020-01-22 20:47:30
查看Docker的底层信息。 docker inspect 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 docker inspect NAMES # 查看容器所有状态信息; docker inspect --format='{{.NetworkSettings.IPAddress}}' ID/NAMES# 查看 容器ip 地址 docker inspect --format '{{.Name}} {{.State.Running}}' NAMES# 容器运行状态 查看进程信息 docker top NAMES 查看端口;(使用容器ID 或者 容器名称) docker port ID/NAMES 查看IP地址 也可以直接通过用 远程执行命令也可以 (Centos7); docker exec -it ID/NAMES ip addr 来源: https://www.cnblogs.com/sharesdk/p/10185931.html

云原生时代的微服务

[亡魂溺海] 提交于 2020-01-22 20:28:30
序言 4月24日,中国信息通信研究院主办的首届云原生产业大会在北京举行,在《云原生数字引领未来》的主题演讲中,阿里云容器服务总监易立表示:“云原生不但可以很好的支持互联网应用,也在深刻影响着新的计算架构、新的智能数据应用。以容器、服务网格、微服务、Serverless为代表的云原生技术,带来一种全新的方式来构建应用。”本段内容根据易立演讲内容整理而成。 一 云原生技术的优势 CNCF给出了云原生应用的三大特征: 容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。 动态管理:通过集中式的编排调度系统来动态的管理和调度。 面向微服务:明确服务间的依赖,互相解耦。 云原生包含了一组应用的模式,用于帮助企业快速,持续,可靠,规模化地交付业务软件。云原生由微服务架构,DevOps 和以容器为代表的敏捷基础架构组成。 这边引用网上关于云原生所需要的能力和特征总结,如下图: 从云原生的三大特征和图中我们可以清晰的了解到:云原生技术中,微服务和云容器结合将会使项目的部署和运维变得更方便、简捷。 二 云原生与微服务的结合 传统的Web开发方式,一般被称为单体架构(Monolithic)所有的功能打包在一个WAR包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat

小白服务器编程指北(2)——用Docker编配你的服务器环境

跟風遠走 提交于 2020-01-22 18:29:30
安装Docker 首先要安装Docker。Docker底层使用的是Linux的容器技术。 所以,为了能够使用Docker,我们需要一台安装了兼容版本的Linux内核和二进制文件的最小化功能宿主机。 笔者这里使用了CentOS 7操作系统。 Step1. Update Docker Package Database 更新yum的repo: sudo yum check - update Step 2: Install the Dependencies 接下来安装Docker的依赖库: sudo yum install - y yum - utils device - mapper - persistent - data lvm2 The yum-utils switch adds the yum-config-manager. Docker uses a device mapper storage driver, and the device-mapper-persistent-data and lvm2 packages are required for it to run correctly. yum-utils会安装yum-config-manager,用于我们下一步配置Docker repo。 Docker需要使用设备存储映射驱动(device mapper storage

Docker容器内数据如何映射到本地(数据卷)

浪子不回头ぞ 提交于 2020-01-22 16:15:46
第一种:用户自行维护挂载目录 此种方式涉及到权限问题,用户必须手动处理,如果权限处理不好就会报Permission Denied等问题。 (docker run --name nginx -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 80:80 7743d9092020) 有2种解决方式。 ①、可以通过 setenforce 0 来关闭安全,关闭以后再通过setenforce 1开启 (docker run -d --name nginx -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 80:80 7743d9092020) ②、通过privileged=true (docker run -d --name nginx2 -v /nginx/html:/usr/local/nginx/html -v /nginx/logs:/usr/local/nginx/logs -p 81:80 --privileged=true 7743d9092020) 创建成功以后,容器nginx和nginx2就共享了/nginx/html和/nginx/logs,写一个html测试下 第二种

【汇智学堂】docker网络管理之三(容器之间的网络通讯)

折月煮酒 提交于 2020-01-22 15:05:27
1、创建容器 创建两个使用默认的bridge网络的容器。 docker run -itd --name=a1 busybox docker run -itd --name=a2 busybox 创建一个使用自定义的abcd网络的容器a3 docker run --network=abcd -itd --name=a3 busybox 为a2容器新增一个自定义的abcd网络连接 docker network connect abcd a2 a1与a2在bridge网络管理下。可以通信。 a2和a3在abcd网络管理下。可以通信。 2、容器地址查看 docker attach a2 ifconfig exit docker attach a1 exit docker attach a3 3、容器通信测试 docker attach a1 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200122125954311.png ) a1与a2能通信 重启Ubuntu IP会不同 docker start a1 docker start a2 docker start a3 a1与a2能通信 确认一下运行的容器 a2与a3能通信 继续测试,发现a1与a3不能通信。 自定义网络管理的容器间,还可以用名字a2\a3 进行连接。例如: ping -w 4

docker基本操作

ぐ巨炮叔叔 提交于 2020-01-22 12:43:24
1.安装yum源,/etc/yum.repos.d [docker] name=doker repo baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever enabled=1 gpgcheck=0 # yum update # yum -y install docker-engine 2.服务相关 # service docker restart  重启 # docker version  查看版本 3.镜像相关命令 # docker pull hello-world  获取镜像 # docker run -it ubuntu /bin/bash  运行镜像 # docker images  查看镜像信息 # docker tag hello-world:latest my-hello-world:my-latest  添加镜像标签 # docker inspect ubuntu  查看镜像详细信息 # docker history hello-world  查看镜像历史信息 # docker search --automated -s 3 nginx  查看镜像,--automated:显示自动创建的,-s:评价值 # docker rmi hello-world  删除镜像 # docker

docker安装

左心房为你撑大大i 提交于 2020-01-22 12:42:45
rpm -ivh http: //mirrors .sohu.com /fedora-epel/6/x86_64/epel-release-6-8 .noarch.rpm sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum .repos.d /epel .repo 3、yum安装docker-io: yum -y install docker-io 4、启动docker: service docker start 5、查看docker版本: 查看docker日志: cat /var/log/docker 三、docker命令的使用 1、直接输入docker命令来查看所有的Options和Commands。 查看某一个command的详细使用方法:docker COMMAND --help 2、搜索可用的docker镜像:docker search NAME 3、下载镜像:docker pull NAME[:TAG] 比如获取最新的centos镜像:docker pull centos:latest 注意:这里要写用docker search搜索到的完整的镜像名。 4、查看安装的镜像:docker images [NAME] 5、在docker容器中运行命令:docker run IMAGE [COMMAND] [ARG...

CentOS6下docker的安装和使用

女生的网名这么多〃 提交于 2020-01-22 12:30:32
CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。 Docker值得关注的特性: 文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。 资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。 网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。 日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。 变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。 交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。 本文介绍如何在RedHat/CentOS环境下安装Docker