容器

Docker的安全性

徘徊边缘 提交于 2020-02-08 17:16:37
Docker的安全性 Docker的安全性主要体现在如下几个方面: Docker容器的安全性这是指容器是否会危害到宿主机或其他容器; 镜像的安全性用户如何确保下载下来的镜像是可信的、未被篡改过的; Docker daemon的安全性如何确保发送给daemon的命令是由可信用户发起的。用户通过CLI或者REST API向daemon发送命令已完成对容器的各种操作,例如通过docker exec命令删除容器里的数据,因此需要保证client与daemon的连接时可信的。 Docker容器的安全性 容器的安全性问题的根源在于容器和宿主机共用内核,因此受攻击的面特别大,另外,如果容器里的应用导致Linux内核崩溃,那么毫无疑问,整个系统哥都会崩溃。这一点与虚拟机是不同的,虚拟机与宿主机的接口非常有限,而且虚拟机崩溃一般不会导致宿主机崩溃。 在共用内核的前提下,容器主要通过内核的Cgroup和Namespace这两大特性来达到容器隔离和资源限制的目的。目前Cgroup对系统资源的限制已经比较完善了,但Namespace的隔离还是不够完善,只有PID、mount、network、UTS、IPC和user这几种。而对于未隔离的内核资源,容器访问时也就会存在影响到宿主机及其他容器的风险。 比如,procfs里的很多接口都没有被隔离,因此通过procfs可以查询到整个系统的信息,例如系统的CPU

迭代器知识整理

纵饮孤独 提交于 2020-02-08 16:11:22
对数组的访问可以使用下标运算符,对链表的访问可以使用指针,对容器对象的访问使用到一种更为通用的机制,迭代器(iterator)。所有的标准库容器都可以使用迭代器,类似于指针,迭代器可以访问某个元素,可以从一个元素移动到一个元素,迭代器有有效与无效之分。 使用迭代器 auto b=v.begin(),e=v.end(); begin负责返回指向容器第一个元素的迭代器,即b是指向容器v的第一个元素的迭代器,迭代器的类型不确定,用auto表示,即让编译器自己确定迭代器的类型;end负责返回指向容器尾元素的下一位置的迭代器,即指向的是一个不存在的“尾后”元素,返回的迭代器称为“尾后迭代器”。特俗情况下,如果容器为空,则begin和end返回的是同一个迭代器。 迭代器运算符 使用==和!=来两个比较迭代器是否相等,若两个迭代器指向的元素相同或者都是一个额容器的尾后迭代器,则相等,否则就说不相等。 //iter是迭代器 *iter;//返回迭代器iter所指向元素的引用 iter->mem;//相当于(*iter).mem,访问所指向元素的mem成员 ++iter;//指向容器的下一元素 --iter;//指向容器的上一元素 注意:end返回的迭代器并不指向实际的某个元素,所以不能对其进行递增或解引用操作。 迭代器类型 一般来说我们并不知道(也无需知道)迭代器的精确类型。实际上

Docker(二):理解容器编排工具Kubernetes内部工作原理

笑着哭i 提交于 2020-02-08 13:56:25
一、Kubernetes是什么   要说到Docker就不得不说说Kubernetes。当Docker容器在微服务的环境下数量一多,那么统一的,自动化的管理自然少不了。而Kubernetes就是一个这样的工具,它不仅仅提供了健康检查和自修复,还有自动扩容缩容,以及服务发现和负载均衡等等功能。 总的来说它使我们对于大量的Docker容器管理更加的方便 。 二、Kubernetes整体架构图及对应功能分析    1、kubectl: 这是相当于用户客户端一样,也是我们较常使用的命令行工具,通过这个工具可以发起对应的请求到master节点中,当然自己开发的客户端同样可以 通过HTTP协议发起对应的RESTAPI请求访问APIServer 。    2、Master: Master节点是整个Kubernetes的核心节点,主要职责是负责调度,即应用放在哪里运行,同样为了高可用可运行多个Master。而Master中主要有APIServer,ControllerManager,Scheduler,Etcd,Kube-dns。对应的职责分别如下:    2.1、APIServer: 提供了资源操作的唯一入口,注意其他节点是无法被外面请求操作的(不是说内部运行的容器无法被访问,而是说无法通过发请求的方式直接操作Node),只有Master节点才能接受外面的请求进行操作Node节点

docker

拥有回忆 提交于 2020-02-08 13:06:50
现在很多公司项目部署都是采用K8S docker容器方式,出门面试被问的概率极大,如果被面试官问docker相关知识点直接懵逼,那么基本就是被pass了,除非其他方面技术过硬。所以这种相对前沿的技术,就算达不到精通的程度,起码还是要了解基础理论和操作 一.安装docker Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上 uname -an 查看当前系统版本 yum -y install docker 下载安装docker service docker start 启动docker服务 docker version 检查docker是否安装成功 当看到下图的信息,就是表示本机docker已经安装成功,很简单 二.镜像操作 创建容器要以镜像为基础,所以先讲下docker镜像的操作 搜索镜像 docker images ll 查看下本机的是否已经有了镜像 目前机器里还没有镜像,去 Docker Hub 下载(镜像还可自定义,这里就不细说了) docker search java ,还能指定具体的版本进行下载, 例如:docker search Ubuntu:1.2.5.4,可以进行搜docker Hub 会列出很多镜像 下载镜像 docker pull docker.io/nginx 进行下载 下载到本地的镜像要比docker Hub上搜索出来的要大

docker run 中的特殊指令

跟風遠走 提交于 2020-02-08 10:04:52
我们要在 docker 中监控主机,但是默认情况下容器中是看不到主机的进程,也看不到主机的网络的…… 而且,容器中的root其实只是一个叫 root 的普通用户…… 例如: [root@docker ~]# docker run -it centos Unable to find image 'centos:latest' locally Trying to pull repository docker.io/library/centos ... latest: Pulling from docker.io/library/centos 8ba884070f61: Pull complete Digest: sha256:8d487d68857f5bc9595793279b33d082b03713341ddec91054382641d14db861 [root@0df145a906bf /]# ps PID TTY TIME CMD 1 ? 00:00:00 bash 13 ? 00:00:00 ps [root@0df145a906bf /]# 如果想改变这些,我们就需要加入以下特殊的启动参数,我们逐一介绍: --privileged : 简单理解的话就是能够让容器里边的root变成真正的root,能干root能干的事(比如容器中的root其实是无法执行mount命令的) -

以图形化的方式了解Kubernetes

瘦欲@ 提交于 2020-02-08 07:01:31
1.容器 在我们尝试了解Kubernetes之前,让我们花一点时间来澄清容器是什么,以及它们为什么如此受欢迎。毕竟,在不知道容器是什么的情况下谈论容器编排器(Kubernetes)是没有意义的:) 容器 “容器”是一个用来存放你放入的所有物品的容器。 像应用程序代码,依赖库以及它的依赖关系一直到内核。这里的关键概念是隔离。将所有内容与其余内容隔离开,以便你更好地控制它们。容器提供三种隔离类型: 工作区隔离(流程,网络) 资源隔离(CPU,内存) 文件系统隔离(联合文件系统) 考虑一下像VM一样的容器。它们精简,快速(启动)且体积小。而且,所有这些都没有构建起来。取而代之的是,他们使用Linux系统中存在的结构(例如cgroups,namespaces)在其上构建了一个不错的抽象。 现在我们知道什么是容器了,很容易理解为什么它们很受欢迎。不仅可以分发应用程序的二进制/代码,还可以以实用的方式交付运行应用程序所需的整个环境,因为可以将容器构建为非常小的单元。解决“在我的机器上工作”问题的完美解决方案。 2. 什么时候使用Kubernetes? 容器一切都很好,软件开发人员的生活现在要好很多。那么,为什么我们需要另一项技术,如Kubernetes这样的容器编排工具呢? 当进入某个状态时,你需要用到它来管理众多容器。 问:我的前端容器在哪里,我要运行几个? 答:很难说,使用容器编排工具。

docker容器常用命令(复习版本)

你。 提交于 2020-02-08 05:49:58
概念: 容器是运行的实例。 1.创建容器 docker create - ti centos 注意:这里要注意的是docker create 仅仅是创建容器,并没有启动。返回的是容器的ID.如果要启动需要docker start 2.创建并启动容器(两种方式) (1)创建并启动: docker run centos / bin / echo "hello world" /bin/echo “hello world”:是启动完成之后在控制台输出:hello world (2)启动容器 这里是容器已经创建好了,只是启动容器。 docker start [ 容器id的前几位 ] 3.查看容器信息 docker ps - a 可以不加-a看到的只是活着的容器,加上-a,就可以看到运行的和终止的容器信息。 六列的信息如下: CONTAINER ID:容器ID(唯⼀) IMAGE:依赖的镜像 COMMAND:执⾏的命令 STATUS:当前容器的状态 PORTS:容器端⼝信息 NAMES:容器别名(可⾃定义) 创建一个centos容器,允许用户交互。 docker run - t - i centos / bin / bash t:docker分配一个伪终端并绑定到容器的标准输入上。 i:让容器的标准输入保持打开。 让容器在后台运行: docker run - d centos / bin /

Flex 布局教程:语法篇

房东的猫 提交于 2020-02-08 00:24:27
作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于 盒状模型 ,依赖 display 属性 + position 属性 + float 属性。它对于那些特殊布局非常不方便,比如, 垂直居中 就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 布局将成为未来布局的首选方案。本文介绍它的语法, 下一篇文章 给出常见布局的 Flex 写法。网友 JailBreak 为本文的所有示例制作了 Demo ,也可以参考。 以下内容主要参考了下面两篇文章: A Complete Guide to Flexbox 和 A Visual Guide to CSS3 Flexbox Properties 。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为 Flex 布局。 .box{ display: flex; } 行内元素也可以使用 Flex 布局。 .box{ display: inline-flex; } Webkit 内核的浏览器,必须加上 -webkit 前缀。

Docker的基本命令大全

廉价感情. 提交于 2020-02-07 23:57:36
Docker Docker基础 命令大全 查找镜像:docker search 镜像名 拉取镜像:docker pull 镜像名 启动docker服务:sudo service docker start 查看docker状态:systemctl status docker 启动镜像:docker run 镜像名 进入运行的容器中:docker exec -it 容器名 查看当前正在运行的容器:docker ps 查看最后一次创建的容器:docker ps -l 列出所有容器ID:docker ps -aq 查看所有运行或者不运行容器:docker ps -a 补充:docker container ls -l/all 停止运行的容器:docker stop 容器id/name 重新启动已终止容器:docker start 容器id 重启运行中的容器:docker restart 容器id 删除docker中的容器:docker rm 容器id 删除docker中所有的容器:docker rm ‘docker ps -a -q’ -f 删除容器的同时移除数据卷:docker rm -v 容器id 查看有哪些镜像:docker images 删除docker中的镜像:docker rmi 镜像id 删除docker中所有的镜像:docker rmi $(docker images -q

第一阶段学习总结

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-07 20:55:01
原计划1月30日看完《Docker技术入门与应用实战》的视频,中途去看了下《Docker技术入门与实战》的书,这样来来回回就整到了今天2月7日。 书讲的很全,但是不适合全部看完,看完需要花费不少的时间,生产环境中也用不到这么多东西,何况我目前的工作根本不搭边,一切都为转行为准,知识面要广,除了docker我还有很多东西要学,所以书翻看了容器跟镜像的部分知识就放下了。 视频讲的速度很快,接触的也多,就是有些点没讲清楚,容器网络管理这一章节讲的不是很好,勉强看完,也实操了不少,后续还有k8s的视频留着以后看吧。 总的来说,容器的基本操作会了,深入一点的话比如部署集群,实际上手操作等等还是不足,只是相当于入了个门,不过这一些对我来说也很好了,目前薄弱的地方是容器的网络管理这一部分还是不是很明白,到时候抽个时间拿下,这部分书讲的还不错,可以去看下。 现在开始看《跟着360架构师 学习Shell脚本编程》,别问我为什么资料这么多,哈哈,网上都有的。一共69个视频,每天两个也要一个月了,加把劲,这个月公司也要求考一个安全的证书,不知道时间够不够用,专心一点完成的话也不是很难,加油吧。 来源: https://www.cnblogs.com/tz90/p/12274214.html