[toc]一、Swarm简介Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻便,具有的功能也较kubernetes更少一些。Swarm在Docker1.12版本之前属于一个独立的项目,在Docker1.12版本发布之后,该
上一篇记录了使用Docker原生网络进行跨主机容器间网络通信的方法,本篇主要介绍如何使用第三方网络项目进行跨主机容器间通信。第三方网络项目跨主机通信分为隧道方案和路由方案,隧道方案主要介绍Flannel、Weave和OpenvSwitch,路由方案则介绍Calico。Flannel网络:Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不
在之前的文章中已经介绍过单主机Docker容器的网络互联,但是实际生产中我们很多时候都是多台主机部署Docker环境,且每台主机上都运行数量不等的容器,如果需要这些容器共同提供服务,就需要解决跨主机容器间的网络通信问题,所以这里就来记录一下常用的跨主机容器间的网络通信方案。Docker主机之间容器通信解决方案:桥接宿主机网络端口映射Docker网络驱动○Overlay:基于VXLAN封装实现Doc
DockerCompose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写。使用DockerCompose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;然后一条命令管理所有服务,比如启动、停止、重启等。DockerCompose的安装:1)下载二进制文件wgethttps://github.com/docker/compose
之前都是使用命令行进行Docker的管理,这里简单介绍一下Docker的图形界面管理。之所以说简单介绍,是因为在生产环境都是集群,很少使用图形界面管理单台Docker主机,所以就演示记录一下,在个人测试时还是可以用到的。一、使用Docker UI进行Docker管理1)首先,下载Docker UI镜像[root@centos7 ~]# docker pull 
虽然前面也介绍了Docker自带的私有仓库Registry,也能满足小公司或团队的需求,但是在一些大公司企业环境中还存在一定的不足。所以这里介绍一款企业级的镜像仓库软件——Harbor。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor的github地址为:
前面已经使用dockerfile构建了镜像,但是构建的镜像仅仅只能在本地使用,如果我们想要在别的服务器上使用这些镜像怎么办呢?当然,我们可以将dockerfile拷贝到别的服务器上,再次构建镜像就可以使用,但是这样就增加了工作量,而且有的构建可能耗时比较久,这个在某些时候是无法容忍的。除了重新构建,我们还可以将镜像导出,然后拷贝到其他服务器上,再次导入即可。但如果想统一管理,标准化构建和版本控制,
dockerfile指令:FROM:构建的新镜像是基于哪个镜像,例如:FROM centos:6 语法: FROM
网络是虚拟化技术中最复杂的部分,当然也是Docker应用中的一个重要环节。Docker使用Linux的Namespace进行资源隔离,这些资源就包含了网络资源,对网络的隔离通过NetworkNamespace进行实现。一个NetworkNamespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的NetworkNamespace隔离,一般Docker容器都会分配一个独立
因Docker采用分层文件系统,对容器做的修改都发生在最上层(可写层),这样使得容器可以重复利用。然而,在容器停止时文件系统的最上层(可写层)就消失了,这样容器产生的数据也就无法保存。所以为了持久化存储容器的数据,通常会挂载容器外的存储来保存容器产生的数据,其主要的形式有如下两种方式:1)数据卷2)数据(卷)容器1、数据卷概念:数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或多
上面已经介绍了Docker镜像管理的常用命令,有了镜像之后就可以方便的运行容器了,所以本篇就依据容器的生命周期来展开,主要记录Docker容器管理的常用命令和示例。创建容器:dockercreate[OPTIONS]IMAGE[COMMAND][ARG...]创建并运行容器:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]PS:因为以上两个命令都是用来创建容器,且命
在之前的文章中,其实已经对镜像做出了说明,镜像其实就是容器中的文件系统,也可以说是一个极度精简的Linux程序运行环境。而在上一篇文章的末尾,运行第一个docker(hello-world)的输出也给出了容器运行的相关步骤说明,其中就包含镜像的获取,Docker守护进程从Docker Hub上拉取一个名为hello-world的镜像到本地,然后Docker守护进程创建一个新的容器,从而输出信息到终
虽然Docker官方推荐将docker运行在Ubuntu系统上,但是因为在生产环境中大部分用的还是CentOS(或者Redhat),所以这里也仅记录在CentOS上安装Docker的方法。Docker安装方法一:Yum安装1、更新yum包# yum update2、安装必要依赖包# yum install -y yum-utils device-mapper-persistent-data lvm
Docker的定义:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。--摘自《百度百科》实际上,虽然介绍docker的书籍有很多,但鲜有给docker一个明确的定义,因为它很难概括成一个概念,而应该更多的被阐述它的特性和技术范畴。综合一些网上的观点
创建HVM格式的CentOS虚拟机:1、创建磁盘文件[root@xen xen]# dd if=/dev/zero of=/images/xen/centos6-hvm.img bs=100M count=100记录了100+0 的读入记录了100+0 的写出10485760000字节(10 GB)已复制,148.453 秒,70.6 MB/秒2、编辑虚拟机配置文件[root@xen opt]#
如何创建xen pv模式: 1、kernel 2、initrd或者initramfs 3、DomU内核模块 4、根文件系统 5、swap设备 将上述内容定义在DomU的配置文件 注意:xm与xl启动DomU使用的配置文
根据之前KVM虚拟化的整理,虚拟化技术分类如下:虚拟化技术的分类:(1)模拟:EmulationQemu,PearPC,Bochs(2)完全虚拟化:FullVirtualization,NativeVirtualizationHVMVMwareWorkstation,VirtualBox,VMwareServer,ParallelsDesktop,KVM,Xen(3)半虚拟化:ParaVirtua
KVM虚拟机迁移kvm虚拟机可以在两台物理机直接实现迁移,主要分为静态迁移和动态迁移静态迁移: 1.拷贝镜像文件和虚拟机配置文件 2.重新定义此虚拟机动态迁移: 1.创建共享存储 2.两台机器挂载共享存储 3.启动动态迁移 4.创建迁移后的虚拟
快照应该是所有虚拟化技术都不可或缺的一个部分吧,无论是VMware、Citrix还是开源的如KVM、Xen等,都提供了快照技术。快照技术提供了虚拟机某一时间点的映像,方便在其他时间我们可以回溯到该时间点,也给数据备份和恢复提供了便利。下面说说KVM虚拟化的快照功能:1.快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/[vma
克隆KVM虚拟机使用到的命令是virt-clone,该工具主要用来克隆虚拟机,也可以使用一系列参数对克隆出的新虚拟机进行定制化。需要注意的是,virt-clone不会修改Guest OS内的任何信息,它仅仅只是复制虚拟机磁盘并在宿主机端做一些修改。所以,类似修改密码、设置静态IP地址等都无法通过virt-clone来完成。virt-clone的用法: &nb
本文主要介绍虚拟机的启动、停止、重启、挂起等基础操作,不过在进行这些操作之前,我们得先有一台kvm虚拟机,根据之前的文章,先创建一台虚拟机。virt-install--name"centos5"--vcpus=1--ram=512--disk=/images/kvm/centos55.img,size=10,sparse--force--networkbridge=virbr0,model=vir
libvirt介绍Libvirt是一个软件集合,便于使用者管理虚拟机和其他虚拟化功能,比如存储和网络接口管理等等。Libvirt概括起来包括一个API库、一个daemon(libvirtd)和一个命令行工具(virsh)。支持的虚拟化技术:KVM,XEN,VMWARE,Qemu,LXC,OpenVZ等libvirt中的术语:node:指物理节点hypervisor:domain:vminstanc
QEMU的基本原理和优缺点基本原理:使用QEMU模拟I/O的情况下,当客户机中的设备驱动程序(devicedriver)发起I/O操作请求之时,KVM模块中的I/O操作捕获代码会拦截这次I/O请求,然后经过处理后将本次I/O请求的信息存放到I/O共享页,并通知用户控件的QEMU程序。QEMU模拟程序获得I/O操作的具体信息之后,交由硬件模拟代码来模拟出本次的I/O操作,完成之后,将结果放回到I/O
接上篇,介绍NAT网络模型和桥接模型。三、NAT模型NAT模型其实就是SNAT的实现,路由中虚拟机能将报文发送给外部主机,但是外部主机因找不到通往虚拟机的路由因而无法回应请求。但是外部主机能同宿主机通信,所以在宿主机上添加一个NAT转发,从而在外部主机请求虚拟机时,将虚拟机的IP地址转换为宿主机上的某个地址,从而实现外部网络与虚拟机的通信,其实际上只是通过iptables的nat表的POSTROU
KVM中的四种简单网络模型,分别如下:1.隔离模型:虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上。2.路由模型:相当于虚拟机连接到一台路由器上,由路由器(物理网卡),统一转发,但是不会改变源地址。3.NAT模型:在路由模式中,会出现虚拟机可以访问其他主机,但是其他主机的报文无法到达虚拟机,而NAT模式则将源地址转换为路由器(物理网卡)地址,这样
CentOS 6加载了KVM模块后,我们是无法进行虚拟机的管理的,如果需要管理KVM虚拟机,还需要管理工具才可以。先看一下KVM的管理工具栈。yum grouplist |grep -i "virtualization" Virtualization: qemu-kvm V
首先,虚拟化技术有两种类型的实现,方式如下: Type-I: hypervisor --> vm Type-II: host --> vmm --> vms实际上,这和当前主流的两大虚拟化技术也正好匹配,他们就是Xen和K
51CTO博客开发
一、准备工作[root@cobbler ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source &n
一、准备工作[root@kickstart ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号