Docker入门1:什么是Docker与原理

1.1Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化

开源项目,诞生2013年,给予GO语言实现,后加入LINUX基金会遵循的Apache2.0协议。

红帽在6.5中集中支持docker. 组成架构:c/s

基本概念:

镜像 Image

Docker镜像就是一个只读的模板

例如:一个镜像可以包含一个完整的redflag操作系统环境,里面仅安装了Apache或用户需要的其它应用程序.

镜像可以用来创建Docker容器.Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,

用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用

容器 Container

Docker利用容器运行应用

容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安装的平台

可以把容器看做是一个简易版的Linux环境,(包括root用户权限、进程空间、用户空间和网络空间等)

和运行在其中的应用程序

注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层

仓库 Repository

仓库是集中存放镜像文件的场所,有时候会把仓库和仓库注册服务器混为一谈,并不严格区分。

实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又凶信了多个镜像,每个镜像有不同的标签

仓库分为公开仓库(Public)和私有仓库(Private)两种形式

用户可以在本地网络内创建一个私有仓库

当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,

这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了

1.2 DOCKER 如何实现资源隔离 LXC

通过LXCLinux的容器技术,具体使用的是内核Kernel中的namespace

PID  namespace  PID

NET  namespace  网络

IPC  namespace  IPC

MNT  namespace  挂载

UTS  namespace  hostname

User namespace  用户

1.3 资源限制 cgroup  CPU+内存

docker run -it --rm -c 512 stress --cpu 1  默认1024权重调成512 占用比66%+33%=1

docker run -it --rm -cpuset-cpus=0 stress--cpu 1 使用第0颗CPU

docker run -it --rm -m 128m stress --cpu 1--vm-bytes 128m --vm-hang 0 设置内存为128M运行

1.4 网 络模式

1桥接br brctl show 默认 容器IP被分配成172.16.1.0段的网络环境,按着启动顺序分配

2host

3container

4none

2 与KVM和XEN对比:

Docker虚拟化方案: 服务器--系统--容器--命令库--APP

KVM和XEN传统虚拟化方案:服务器-系统--管理KVM或XEN--系统--命令库--APP

2 与openstack对比:

类别        Docker             openstatck   

安装         非常简单              组件多,部署复杂

启动速度       秒级别                 分钟级别

性能         和物理系统几乎一样          vm会占用一些资源

镜像体积       MB                   GB

隔离性        隔离性高               彻底隔离

可管理性       单进程,不建议启动SSH         完整的系统管理

网络连接       比较弱                 借助NEUTRON

3 为什么要用Docker 应用场景:

1 更快速的交付和部署,一次创建或配置,到处都能运行,简化配置,提高开发效率,快速部署

2 更高效的虚拟化,内核级别的虚拟化

3 更轻松的迁移和扩展,兼容平台多,方便移植

4 更简单的管理,只要做小小的修改就能,替代以往大量的更新工作,修改作为增量被分发和更新

5 服务器隔离,组合服务,多租户,代码流水线管理

4 Docker运行环境:

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,需要内核版本是 2.6.32-431 或者更高版本

查看内核版本:uname -r

时间: 2024-08-04 21:30:18

Docker入门1:什么是Docker与原理的相关文章

【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World

操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service docker stop  #停止服务 service docker restart #重启服务 service docker status   #查看服务状态 启动Docker服务 docker是一个CS模型,需要先启动服务端,直接执行 sudo service docker start 启动docker

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

Docker入门与实践之 docker安装与了解

一.Docker 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 二.Docker 的优点  2.1.简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任

关于docker入门教程

简介:docker入门教程 docker入门教程翻译自docker官方网站的Docker getting started 教程,官方网站:https://docs.docker.com/linux/started/ 官方网站是一个交互的教程,在左侧是相应的说明,右侧是一个交互的终端,输入预期的目录,可以跳到下一步,大家可以参考我们的翻译,在官网上面运行相应的命令,以验证效果. 译者按:之前的交互教程在新版本的docker官网上已无法找到,但核心的概念流程没有变,仍然可以参考.(2015/9/16

Docker入门与实战系列:热点问题

Docker入门与实战--<Docker ABC>电子书 https://github.com/gudaoxuri/Docker_ABC 11. 热点问题 11.1. 容器如何使用静态IP 默认情况下Docker容器的IP是动态分配的,要使用静态IP时我们会思考一下: 为什么需要静态IP?如果是为了两个容器间通信可以 使用--link 指定-h来指定hostname并指定-dns到宿主机 让容器开放上层服务 如果这样都满足不了您的要求那么可以参考 http://huataihuang.gith

docker入门概览

docker入门概览 标签 : docker docker入门概览 写在前面 概述 什么是Docker 什么是Docker Engine Docker的用处 安装 Ubuntu Mac OS X 演示 架构和原理 结语 参考资料 本文对docker进行大致介绍,包括概述,安装,简单使用,架构,基本原理等方面 写在前面 本文是自己学习docker的一个记录和整理,啃英文文档挺吃力的,懒得翻译,所以写这篇类似"索引"的文章,希望能帮助和我一样的新手快速入门 本文主要参考官方文档(Docke

微服务SpringCloud+Docker入门到高级实战

第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平简介:课程所需基础和技术选型讲解,学完课程可以到达怎样的程度, 第二章 架构演进和分布式系统基础知识 1.传统架构演进到分布式架构简介:讲解单机应用和分布式应用架构演进基础知识 (画图)2.微服务核心基础讲解简介:讲解微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断3.常见的微服务框架简介:讲解常用的微服务框架4.微服务下

Docker入门学习1 ——概述

摘要:本文为Docker基本介绍.了解Docker的概念与组成,可以在命令的学习中更好地构建起体系,也可以与之前的知识融会贯通. 知识点:Docker用途 组成 原理,Docker容器简介 一.Docker入门介绍 Docker是什么? 简单来说,docker是一种比虚拟机更方便的虚拟化环境.有多方便?举个例子,以前想在Windows环境运行LAMP服务器,需要下载安装VMWare一类的虚拟机管理工具,再安装linux虚拟机,再安装LAMP环境:现在只要在docker中通过定制的镜像创建需要的容

Docker入门教程(一)介绍

http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了Docker的基础概念以及Docker的安装. Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere(译者注:这个就不翻译了,翻译出来味道就没了)”.本文是Flux7的Docker系列教程的第一部分.请和这

Docker入门教程(二)命令

Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的.在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的. 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到这条命令,则表示Docke