一文了解Docker容器技术的操作】的更多相关文章

一文了解Docker容器技术的操作 前言一.Docker是什么二.Docker的安装及测试Docker的安装Docker的Hello world测试三.Docker的常见操作镜像的基本操作容器的基本操作镜像.容器的导入和导出四.关于DockerFile总结 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上.技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力,在计算机技术日新月异的今天,真正能够沉下心来学习一门技术的时间真的不多.趁着这…
一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ 这一系列挺好的 概述 今天主要简单介绍下docker的技术架构及其中组成的各个模块. 技术架构 distribution 负责与docker registry交互,上传洗澡镜像以及v2 registry 有关的源数据 registry负责docker registry有关的身份认证.镜像查找.镜像验…
接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --name="容器新名字":为容器指定一个名称: -i:以交互模式运行容器,通常与-t或者-d同时使用: -t:为容器重新分配一个伪输入终端,通常与-i同时使用: -d: 后台运行容器,并返回容器ID: -P: 随机端口映射,容器内部端口随机映射到主机的端口 -p: 指定端口映射,格式为:主机(…
接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以实现宿主机和容器目录的双向数据自动同步: 7.2 作用 前面学过cp命令来实现数据传递,这种方式比较麻烦: 我们通过容器目录挂载,能够轻松实现代码上传,配置修改,日志同步等需求: 7.3 实现 语法: docker run -it -v  /宿主机目录:/容器目录 镜…
什么是 stack ?在回答这个问题之前我们先回忆一下前面部署 WordPress 应用的过程: 首先创建 secret. 然后创建 MySQL service,这是 WordPress 依赖的服务. 最后创建 WordPress service. 也就是说,这个应用包含了两个 service:MySQL 和 WordPress,它们之间有明确的依赖关系,必须先启动 MySQL. 为了保证这个依赖关系,我们控制了 docker secret 和 docker service 命令的执行顺序,只不…
据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载.在积累了这么多年的经验后,Google 决定重写这个容器管理系统,并将其贡献到开源社区,让全世界都能受益. 这个项目就是 Kubernetes.简单的讲,Kubernetes 是 Google Omega 的开源版本. 从 2014 年第一个版本发布以来,Kubernetes 迅…
一 Ansible自动化运维工具 Python 在运维工作中的经典应用 ansible(批量管理操作) .安装ansible(需要bese epel 2种源) wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum i…
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建.部署,实现应用的敏捷开发.快速迭代.在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. 实施…
除了监控容器,Weave Scope 还可以监控 Docker Host. 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息. host 当前的资源使用情况和历史曲线一览无余.除此之外也能很方便地查看 host 上运行的进程和容器列表,点击容器名字还可以打开此容器的信息页面. host 页面上部有一个按钮,点击可直接打开 host 的 shell 窗口,这个远程管理功能真的很贴心. 多主机监控 前面我们已经领略了 Weave Scope…
cAdvisor 是 google 开发的容器监控工具,我们来看看 cAdvisor 有什么能耐. 在 host 中运行 cAdvisor 容器. docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true…
上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理. 要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日…
从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论一个重要的概念 - 集群化(Clustering). 服务器集群由一组网络上相互连接的服务器组成,它们一起协同工作.一个集群和一堆服务器最显著的区别在于: 集群能够像 单个 系统那样工作,同时提供高可用.负载均衡和并行处理. 如果我们部署应用和服务时选择的是多个独立的服务器而非集群,资源的整体利用率则很难达到最优,因为我们无法提前知道如何分布这些应用才能达到资源利用的最大化.而且,应用使用资源的趋势是…
本节我们将创建三节点的 swarm 集群. swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node. 所有节点的 Docker 版本均不低于 v1.12.我们的实验环境 node 的操作系统为 Ubuntu 16.04,当然其他 Linux 也是可以的. 在 swarm-manager 上执行如下命令创建 swarm. docker swarm init --advertise-addr 192.168.5…
这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes包括了安装部署.应用管理.网络.存储.监控.日志管理等多各个方面. 重实践并兼顾理论通过大量实验和操作带领大家学习 Kubernetes. 为什么要学 Kubernetes ? 因为 Kubernetes 太热门了. 2017 年 9 月,Mesosphere 宣布 支持 Kubernetes:10 月,Docker 宣布将在新版本中加入对 Kubernetes 的原生支持.至…
我们将部署三个节点的 Kubernetes Cluster. k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node. 所有节点的操作系统均为 Ubuntu 16.04,当然其他 Linux 也是可以的. 官方安装文档可以参考 https://kubernetes.io/docs/setup/independent/install-kubeadm/ 注意:Kubernetes 几乎所有的安装组件和 Docker 镜像都放在 goolge 自己的网站上,这…
从本章开始,我们将通过实践深入学习 Kubernetes 的各种特性.作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用,这就是本章的内容. Deployment 前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期.为了满足不同业务场景,Kubernetes 开发了 Deployment.ReplicaSet.DaemonSet.StatefuleSet.Job 等多种 Controller.我们首先学习最常用的 Deployment.…
默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node.不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Node:或者 Pod 需要 GPU,需要运行在配置了 GPU 的节点上. Kubernetes 是通过 label 来实现这个功能的. label 是 key-value 对,各种资源都可以设置 label,灵活添加各种自定义属性.比如执行如下命令标注 k8s-node1 是配置了 SSD 的节点. k…
对于多副本应用,当执行 Scale Up 操作时,新副本会作为 backend 被添加到 Service 的负责均衡中,与已有副本一起处理客户的请求.考虑到应用启动通常都需要一个准备阶段,比如加载缓存数据,连接数据库等,从容器启动到正真能够提供服务是需要一段时间的.我们可以通过 Readiness 探测判断容器是否就绪,避免将请求发送到还没有 ready 的 backend. 下面是示例应用的配置文件. 重点关注 readinessProbe 部分.这里我们使用了不同于 exec 的另一种探测方…
当 PV 不再需要时,可通过删除 PVC 回收. 当 PVC mypvc1 被删除后,我们发现 Kubernetes 启动了一个新 Pod recycler-for-mypv1,这个 Pod 的作用就是清除 PV mypv1 的数据.此时 mypv1 的状态为 Released,表示已经解除了与 mypvc1 的 Bound,正在清除数据,不过此时还不可用. 当数据清除完毕,mypv1 的状态重新变为 Available,此时则可以被新的 PVC 申请. /nfsdata/pv1 中的 hell…
在实践之前,我们先来看看 Helm 的架构. Helm 有两个重要的概念:chart 和 release. chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板.参数定义.依赖关系.文档说明等.chart 是应用部署的自包含逻辑单元.可以将 chart 想象成 apt.yum 中的软件安装包. release 是 chart 的运行实例,代表了一个正在运行的应用.当 chart 被安装到 Kubernetes 集群,就生成一个 release.chart 能够多次…
Helm 安装成功后,可执行 helm search 查看当前可安装的 chart. 这个列表很长,这里只截取了一部分.大家不禁会问,这些 chart 都是从哪里来的? 前面说过,Helm 可以像 apt 和 yum 管理软件包一样管理 chart.apt 和 yum 的软件包存放在仓库中,同样的,Helm 也有仓库. Helm 安装时已经默认配置好了两个仓库:stable 和 local.stable 是官方仓库,local 是用户存放自己开发的 chart 的本地仓库. helm searc…
chart 是 Helm 的应用打包格式.chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service.Deployment.PersistentVolumeClaim.Secret.ConfigMap 等. 单个的 chart 可以非常简单,只用于部署一个服务,比如 Memcached:chart 也可以很复杂,部署整个应用,比如包含 HTTP Servers. Database.消息中间件.cache 等. chart 将这些文件放置在预定…
安装 chart 当我们觉得准备就绪,就可以安装 chart,Helm 支持四种安装方法: 安装仓库中的 chart,例如:helm install stable/nginx 通过 tar 包安装,例如:helm install ./nginx-1.2.3.tgz 通过 chart 本地目录安装,例如:helm install ./nginx 通过 URL 安装,例如:helm install https://example.com/charts/nginx-1.2.3.tgz 这里我们使用本地…
为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务.部署应用: 当前没有定义任何 Network Policy,验证应用可以被访问: 启动一个 busybox Pod,可以访问 Service,也可以 Ping 到副本 Pod. 集群节点可以访问 Service, 也可以 Ping 到副本 Pod. 集群外(192.168.56.1)可以访问 Ser…
创建 Kubernetes 集群并部署容器化应用只是第一步.一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求.Kubernetes 是一个复杂系统,运维团队需要有一套工具帮助他们获知集群的实时状态,并为故障排查提供及时和准确的数据支持. 本章重点讨论 Kubernetes 常用的监控方案,下一章会讨论日志管理. Weave Scope Weave Scope 是 Docker 和 Kubernetes 可视化监控工具.Scope 提供了至上而下的集群…
上一节我们完成了 Kubernetes Dashboard 的安装,本节就来实践一下. Dashboard 界面结构 Dashboard 的界面很简洁,分为三个大的区域. 顶部操作区在这里用户可以搜索集群中的资源.创建资源或退出. 左边导航菜单通过导航菜单可以查看和管理集群中的各种资源.菜单项按照资源的层级分为两类:Cluster 级别的资源  Namespace 级别的资源  默认显示的是 default Namespace,可以进行切换: 中间主体区在导航菜单中点击了某类资源,中间主体区就会…
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用的状态.执行故障排查任务以及管理 Kubernetes 各种资源. 在 Kubernetes Dashboard 中可以查看集群中应用的运行状态,也能够创建和修改各种 Kubernetes 资源,比如 Deployment.Job.…
Network Policy 是 Kubernetes 的一种资源.Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信. 默认情况下,所有 Pod 是非隔离的,即任何来源的网络流量都能够访问 Pod,没有任何限制.当为 Pod 定义了 Network Policy,只有 Policy 允许的流量才能访问 Pod. 不过,不是所有的 Kubernetes 网络方案都支持 Network Policy.比如 Flannel 就不支持,Ca…
Helm 通过模板创建 Kubernetes 能够理解的 YAML 格式的资源配置文件,我们将通过例子来学习如何使用模板. 以 templates/secrets.yaml 为例: 从结构看,文件的内容非常像 Secret 配置,只是大部分属性值变成了{{ xxx }}.这些 {{ xxx }} 实际上是模板的语法.Helm 采用了 Go 语言的模板来编写 chart.Go 模板非常强大,支持变量.对象.函数.流控制等功能.下面我们通过解析 templates/secrets.yaml 快速学习…
本文转载至 http://3387405.blog.51cto.com/3377405/1598977 预见未来看似是一件不太可能的事情,然而现在企业科技高速发展的态势完全超乎想象. 就在几周前InfoWorld的主编Eric Knorr在引流潮流专栏发表一篇非常火爆的关于2015年以及之后的九大科技企业趋势,在其中非常清晰的指出这九大潮流中头两位就是公有云的胜利和容器技术的狂热.从这里我们很容易理解为什么最近Scott Guthrie 发表并且Jason Zander 再次阐述与Docker合…