centos7下安装docker(19容器架构)

What,Why,How

What:什么是容器?

说起容器大家想到的是什么?

     集装箱(container),虚拟机,docker,k8s

1.

没毛病,因为容器与集装箱的英文都可以翻译成container

2.虚拟机:AWS,Azure,VMware,华为,公有云,私有云等

对容器有了解的人都会觉得容器和虚拟机很像,因为二者都是为应用提供封装和隔离。

1.系统层面:容器本质上是单个应用程序,而虚拟机则需要更多的资源来运行整个操作系统,虚拟机上可以运行容器,其实我们也可以把容器看作成一个操作系统,毕竟容器也可以通过自己的设定运行命令,但这并不是容器的初衷

2.应用层面:容器是单一的应用程序,虚拟机是多用途的应用程序。容器适合一个容器运行一种应用程序,比如ELK日志收集方案,ELK是由elasticsearch,logstash,kibana三个组件组成的,那么我们要运行三个容器,分别运行这三个组件;在虚拟机上部署ELK的话我们可能会将三个组件都部署在一台虚拟机上,如果是那种比较大型的方案的话,将三个组件分开,就需要三个虚拟机,在三个虚拟机上分别部署这三个组件

3.构建方面

如图所示:虚拟机的构建方法:物理服务器----->Host 操作系统----->Hypervisor层------>Guest操作系统----上层应用

容器:                      物理服务器---->Host 操作系统------容器(上层应用)

很明显,传统的虚拟化技术,比如VMware,KVM,Xen,目标是创建完整的虚拟机,为了运行应用,除了部署应用本身及其依赖(通常是几十MB),还得安装整个操作系统(几十GB);容器的话是所有容器共享一个Host OS,这使得容器在体积上比虚拟机小很多,所以容器部署和启动速度更快,开销更小,也更容易迁移

3.

一说容器,大家一般想到的都是docker。docker几乎是容器的代名词,其实容器不光是Docker,还有其他容器,比如:CoreOS的rkt

4.K8S:kubernetes

说起容器,我们可能也会想起K8S,K8S到底是什么呢?

答案是:容器编排引擎

什么是容器编排引擎呢?

答案是:管理容器集群的工具,主要是用来动态的创建,迁移,销毁容器。所谓编排,通常包括管理,调度,集群定义和服务发现,通过容器编排引擎,容器被有机的组合成微服务应用,实现业务需求。

除了K8s以外,还有docker swarm,mesos,这三个是目前比较主流的容器编排引擎

k8s是由Google开发的,在容器编排的这场争夺中,一直以来比较强势,今年10月份docker宣布增加对k8s内置支持,而Mesosphere发布了DC/OS 1.10版,这个版本的特色在于让企业可以自己选择容器调度工具,开始支持K8s,容器编排的三足鼎立也就完成统一。

 容器到底是什么呢?

容器是一种轻量级,可移植,自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。

例如:开发人员在自己的笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机,物理服务器或公有云上运行。

我现在研究的是容器主流技术---docker

Docker是世界领先的软件平台集装箱

why:为什么需要容器?

为什么需要容器?容器到底解决了什么问题?

简要的答案是:容器使软件具备了超强的可移植能力

容器解决的问题:

面临的挑战:传统的开发过程中,开发、测试、运维是三个独立运作的团队,团队之间沟通不畅,开发运维之间冲突时有发生,导致协作效率低下,产品交付延迟, 影响了企业的业务运行

Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式应用可以部署于任何环境。

这样,开发人员:在写代码的时候就不需要考虑环境问题,

运维人员:也不需要为不同的服务和平台配置环境,以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开发和交付速度

docker的特性

HOW: 容器是如何工作的?

docker架构:

docker 的核心组件包括:

1.Docker客户端---client

2.docker服务器---docker daemon

3.docker镜像---image

4.registry

5.docker容器---containers

Docker采用的是CS架构,客户端发送请求到服务器,服务器负责构建,运行和分发容器。客户端和服务器可以运行在同一个Host主机上。

 docker客户端:

docker客户端通过docker 命令像服务器发送请求,可以方便的在Host上构建和运行容器

docker支持很多操作

docker服务器:

docker daemon是服务器的组件,以linux后台服务的方式运行

docker daemon运行在docker host上,负责创建,运行,监控容器,构建,存储镜像

默认配置下,docker daemon只能响应来自本地host客户端的请求。

如果允许远程的客户端的请求,需要在配置文件中打开TCP监听

1.vim /etc/systemd/system/docker.service.d/10-machine.conf

添加-H tcp://0.0.0.0允许来自任意IP的客户端连接

2.重启docker daemon

3.服务器的IP为192.168.7.226,在远程客户端运行命令行加-H参数,即可与远程服务器连接

例如:docker -H 192.168.7.226 info

docker镜像

可将docker镜像看作是容器的模板,通过它可以创建容器

镜像有多种生成方法:

1.可以从无到有的创建   dockerfile

2.可以下载并使用别人创建好的现成的镜像  docker pull

3.在现有的镜像的基础上创建新的镜像 dockerfile

registry

registry是存放镜像的仓库,分为私有和共有两种

docker hub   (https://hub.docker.com/)是默认的registry,有docker公司维护,上面有数以万计的镜像,用户可以自由下载和使用。docker pull命令下载

时间: 2024-10-10 07:53:19

centos7下安装docker(19容器架构)的相关文章

centos7下安装docker时出现没有安装包docker问题的解决

我在centos7下安装docker时遇到了没有安装包docker,我不知道大家是否有遇到过,是否有好的解决办法,下面把我个人的解决办法给大家奉献上,希望对大家有所帮助. 因为按照大家认为的Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: $ yum install docker -y 但是安装提示没有安装包docker 后来自己结合查阅的资料终于整理出了解决办法 我们需要在/etc/yum.repo.d/目

CentOS-7下安装docker

CentOS-7 下安装docker 原文地址:https://www.cnblogs.com/yufeng218/p/8370670.html 一.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 2.使用 root 权限登录 Centos.确保 yum 包更新到最新. 原文地址:https://www.cnblogs.com/zh

Linux(centos7)下安装Docker

近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口.Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器.Docker 容器通过 Docker 镜像来创建.容器与镜像的关系类似于面向对象编程中的

centos7下安装docker(14安装docker machine)

之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌multi-host环境,我们该如何高效的进行管理呢? 第一个问题就是:为所有host安装和配置docker 之前我们手工安装了一个docker host: 1.安装https CA证书 2.添加GPG key 3.添加docker apt源 4.安装docker      对于多主机的环境手工方式

centos7下安装docker 17.x

docker的17.X版本与以前的docker安装有些不同,参考了下这篇文章http://www.itmuch.com/docker/docker-2/,以下是我的docker 17.X版本安装过程,记下来,方便以后查阅 1.卸载老的版本docker: yum remove docker docker-common container-selinux docker-selinux docker-engine 执行该命令只会卸载Docker本身,而不会删除Docker内容,例如镜像.容器.卷以及网

CentOS7下安装Docker

环境说明:CentOS7 Docker1.检查CentOS内核版本,新版本的Docker要求内核不低于3.1#uname -r2.更新yum版本#yum update3.检查是否内置了docker,或者安装过docker,将其删除#rpm -qa | grep docker#yum remove docker docker-common docker-selinux docker-engine4.安装需要的包#yum install -y yum-utils device-mapper-pers

centos7下安装docker(15.7容器跨主机网络---calico)

Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来.与vxlan不同的是:calico不对数据包进行封装,不需要NAT和端口映射,扩展性和性能都很好 与其他容器网络相比,calico还有一个优势:network policy.用户可以动态定义ACL规则,控制进出容器的数据包,实现业务需求 calico依赖etcd在不同主机间共享和交换信息,存储calico网络状态.calico网络中每个主机都要运行calico组

centos7下安装docker(18docker日志---docker logs)

在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要,考虑到容器的短暂和不固定周期,当我们需要排查问题的时候容器可能不在了.因此,一套集中式的日志管理系统是生产环境中不可或缺的组成部分 docker logs docker 自带的日志功能 对于一个运行的容器,docker 会将日志发送到容器的标准输出(STDOUT)和标准错误设备(STDERR),stdout和stderr实际上就是容器的控制台终端 例如: 当我们用docker run -p 80:80 http

Windows 7 下安装 docker 应用容器引擎

文档地址 ====================================== 安装篇 下载工具 https://get.daocloud.io/toolbox/ 下载完成点击安装 (可参考:jianshu.com/p/bb6527516523) 安装完成 boot2docker.iso 已经在 C:\Users\Administrator(自己的PC用户名)\.docker\machine\cache  下:如果没有请将 boot2docker.iso 复制过去: Docker Too