Docker笔记1——5W简述docker基本概念

Who?

docker适合谁?运维,和devops的开发。mysql

Docker 开发方向:linux

语言:Golangredis

相关的技术:Swarm、Compose、Machine、mesos、k8s.....--- CI/CD Jeckins整合sql

 

WHY?

为何要用docker?解决了什么问题?docker

开发与运维的矛盾:开发提交给运维代码、war包、jar包,开发本机一切安好;运维工程师部署发现不成功。ubuntu

缘由:环境和配置windows

如在windows开发,部署到ubuntu或者Centos上。centos

版本迭代,系统变得复杂,可能会持续带来相似问题。tomcat

 

解决思路:将开发工程师开发的环境 代码、配置、系统、数据等环境下整个都交给运维来跑。docker就作的是这件事情——软件+环境 安装。安全

运维安装的再也不是软件,而是可以运行软件和环境的整个全家桶。

(本文出自oschina博主happyBKs的博文:https://my.oschina.net/happyBKs/blog/3010974)

另外一个问题:大型分布式环境,每一个ZK、redis、应用有多个节点,还有可能扩容,那部署和维护多个相同的软件运行环境很是痛苦。

解决思路:把代码、配置、环境、依赖等正确环境打一个包,叫作镜像,发布到多个节点。

 

 

What?

docker是什么?

docker的理念:一次构建到处运行。

解决了运行环境和配置问题的软件容器,方便持续集成并有助于总体发布的容器虚拟化技术。

 

虚拟机和容器:

虚拟机:启动慢,吃资源,冗余步骤多;捆绑一整套操做系统,虚拟一套硬件。

LXC :linux容器,不是模拟一个完整的操做系统,而是对进程进行隔离。内核要,其余不相关的不要。将软件所需的全部打包到一个隔离的容器当中。容器和虚拟机不一样,不须要捆绑一整套操做系统,只须要软件工做所须要的库资源和设置。高效、轻量。

 

Docker和传统虚拟化技术的不一样之处:

传统的虚拟机技术是虚拟一套硬件以后,在其上运行一个完整的操做系统,在该系统上运行所须要的应用进程。

而容器内的应用进程直接运行于宿主内核,容器内没有本身的内核,并且也没有进行硬件虚拟。所以容器要比传统虚拟机更为轻便。

每一个容器之间互相隔离,每一个容器有本身的容器系统,容器之间进程不会互相影响,能区分计算资源。

 

不严格的说,docker能够认为是一个精简版、超小型linux系统虚拟机。

 

docker发布一个镜像运行便可,使得dev/ops的理念的出现,运维同志们小心被优化噢:)

 

 

 

docker你该知道的杂项

Docker是2014年出现,2017年开始火爆。

Docker支持的系统和版本要求:

Centos必须6.5及以上版本。

centos7以上,要求64位操做系统、系统内核版本3.10以上。

centos6.5以上或者更高版本的Centos上,要求64位、系统内核版本2.6.32-431或者更高版本。

neil@linux-famw:~> uname -r
4.12.14-lp150.12.45-default

windows也可使用docker。

 

 

 

 

 

 

Docker的架构和三要素

Docker的三要素:镜像、容器、仓库

 

docker的架构图:

三要素的关系

image镜像 能够看做是类。

container容器能够看做是实例。

container容器是image镜像的实例。

 

docker的logo是一个鲸鱼同样的船载满了不少集装箱。

集装箱就是container容器。

鲸鱼就是docker。

 

docker镜像是一个只读的模板,镜像能够用来建立docker容器,一个镜像能够建立不少个docker容器(就像一个类能够有不少个实例同样)

 

image镜像能够注册在仓库注册服务器Registry。须要的时候pull下来使用。

仓库Repository和仓库注册服务器Registry是有区别的。

仓库Repository 是集中存放镜像文件的地方。

库注册服务器Registry上每每存放着不少仓库仓库Repository,每一个仓库中又包含了不少个image镜像。每一个image镜像有不一样的标签tag。

仓库又分为 公开仓库public和私有仓库private。

最大的公开仓库 dokcer hub:https://hub.docker.com/

可是和maven中央仓库、pip仓库同样,老外的仓库与我朝有着网速的限制。通常仍是用国内的。

国内的docker公开仓库有:阿里云、网易云

而这种承担了docker 公开仓库功能的网站,咱们称之为 docker 镜像站。

 

总结

Docker利用容器container独立运行一个或一组应用。容器是用镜像建立的实例。它尅被启动、开始、中止、删除。每一个容器都是互相隔离、保证安全的平台。

Docker自己是一个容器运行载体,是一个容器管理引擎。

咱们把应用、配置、依赖打包好,造成一个可交付的运行环境,这个打包好的运行环境就是镜像文件。只用经过镜像文件才能生成docker容器。镜像文件能够看做是容器的模板。同一个镜像文件能够生成多个同时运行的容器实例。

一个容器运行一种服务,好比redis服务、mysql服务、tomcat服务。当咱们须要这个服务的时候,就用docker客户端建立一个对应的运行实例,这就是容器。

 

 

 

Where

下载安装:

官方文档:https://docs.docker.com/install/

centos、ubuntu、windows、mac os等都有。

官网没有suse的docker安装方法,但能够参考我本身以前的博客文章《固态硬盘排名 Docker在opensuse leap15.0安装手册(HappyBKs特供白白》

 

docker6安装的是docker io

7以后安装的该叫docker ce

ce的意思是社区版。

相关文章
相关标签/搜索