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

原创
2019/02/16 22:38
阅读数 209

Who?

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

Docker 开发方向:

语言:Golang

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

 

WHY?

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

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

原因:环境和配置

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

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

 

解决思路:将开发工程师开发的环境 代码、配置、系统、数据等环境下整个都交给运维来跑。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的意思是社区版。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
3 收藏
分享
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部