docker入门(一)

dockerdocker.lnc公司开源的一个基于LXC技术之上构建的container容器引(openstack是基于KVM),源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源。

 

   docker是通过内核(linux内核)虚拟化技术(namespacescgroups等)(KVM是基于硬件虚拟化技术来实现的)来提供容器的资源隔离安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要类似虚拟机(VM)额外的系统开销,提高资源利用率。

 

docker的组成:docker是一个C/S结构的(C/S就是客户端/服务器,B/S就是浏览器/服务器模式)

Docker Client

Dockerserver

docker的组件:

1,镜像(p_w_picpath

2,容器(container

3,仓库(repository

Docker镜像

Docker镜像( Image) 就是一个只读的模板。

例如:一个镜像可以包含一个完整的ubuntu 操作系统环境,里面仅安装了 Apache

或用户需要的其它应用程序。

镜像可以用来创建Docker 容器。

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

直接从其他人那里下载一个已经做好的镜像来直接使用。

 

Docker 容器

Docker利用容器( Container) 来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是

相互隔离的、保证安全的平台。

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

空间和网络空间等)和运行在其中的应用程序。

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

Docker 仓库

仓库(Repository) 是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务

器(Registry) 混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着

多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag) 。

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

最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。

国内的公开仓库包括时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。

当然,用户也可以在本地网络内创建一个私有仓库(参考本文“私有仓库”部分) 。

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

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

就可以了。

*注:Docker仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服

 

容器与虚拟化的区别:containersvs VMS

Docker和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

VM:首先需要有一个server(物理机)上面需要装一个操作系统host OS,再上去需要起一个虚拟机管理器(比如是KVMXEN等),然后在上面跑一个虚拟机guest OS,在虚拟机上就可以跑各种应用了。

wKiom1j2VsnhKh2gAAJx7zkJ9MQ181.png-wh_50

containers:需要有一个server(物理机)上面需要装一个操作系统host OS,然后他是基于docker的一个引擎来创建各个docker,是隔离起来的

wKioL1j2VsjT_WIsAAKQYJEOLMQ474.png-wh_50

dockeropenstack的对比:

wKioL1j2VseQzsADAAIVQuCAUvQ499.png-wh_50

docker能干什么?

1,简化配置。(环境不一致配置就不一致:测试环境中我们装了python的依赖,生产环境没有装就会出现上线失败)(openstack,saltstack也能做)

2,代码流水线管理(开发写一个代码需要开发环境,测试者测试,然后上线)保证所有环境一致(saltstack也能做,保证所有环境都是saltstack)

3,开发效率(新员工入职的时候新机器需要配置很多环境,不同业务线的给打包不同的镜像)(openstack起个虚拟机更快,每人一台虚拟机)docker起在本地可能一断电就没了

4,应用隔离(虚拟机是完全隔离,docker只是一个隔离(openstackKVM需要占用资源docker不用))

5,服务器整合(一个服务器可以跑多个docker来提高服务器的利用率)

6,调试能力(进入docker调试比较难,虚拟机就方面很多)

7,多租户(opensatck本来设置就是多租户,每个project就是一个租户)

8,快速部署(体积小,快)(微信春晚抢红包,一秒钟启动上千个docker)

wKiom1j2VsfhttoMAAHlZvUsreg751.png-wh_50

用docker的理由:

1,技术储备。2,符合当前业务需求,3,速度快

docker的坏处:docker用的是S/C架构,一当服务器挂了,所有的docker都会停止运行。

centos7下载docker :yum installdocker -y

启动:systemctlstart docker


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章