Docker入门及centOS7下安装
Docker入门及centOS7下安装
简介:利用go语言实现的应用容器引擎 docker引擎基础是linux容器(Linux Containsers, LXC)技术 它可以使开发和运维结合的更容易
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker本身并不是一个容器,而是一个管理容器的引擎工具。它包含一个服务端和客户端,服务端是一个管理着所有容器和文件系统的服务进程,客户端则是一个服务端的控制器,用来控制docker的服务端进程。至于容器,主要指的是包含了一些特定应用的运行实例,既保证了当前应用的运行环境独立,又能保证容器相互之间的独立。
学习Docker的原因
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发者,我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案并且轻便且高效。
一个完整的Docker有以下几个部分组成:
- dockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
与nodeJs异同
docker:可以把各种应用以轻量级容器的形式打包、发布、运行
nodeJs:允许应用程序和依赖以一种标准的形式来打包
与虚拟机的不同
相对与虚拟机少了几层轻量了很多 比如运行速度 使用内存等...
vm与docker框架,直观上来讲vm多了一层guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源虚拟机启动需数分钟 Docker容器仅需50毫秒 可以在几秒钟之内创建大量容器(因为docker是利用宿主机的系统内核)
-
使用docker容器可以运行多个相互隔离的应用
虚拟机和docker隔离应用的差别
从下到上理解上图:
基础设施(Infrastructure)。它可以是你的个人电脑,数据中心的服务器,或者是云主机。
虚拟机管理系统(Hypervisor)。利用Hypervisor,可以在主操作系统之上运行多个不同的从操作系统。类型1的Hypervisor有支持MacOS的HyperKit,支持Windows的Hyper-V、Xen以及KVM。类型2的Hypervisor有VirtualBox和VMWare workstation。
客户机操作系统(Guest Operating System)。假设你需要运行3个相互隔离的应用,则需要使用Hypervisor启动3个客户机操作系统,也就是3个虚拟机。这些虚拟机都非常大,也许有700MB,这就意味着它们将占用2.1GB的磁盘空间。更糟糕的是,它们还会消耗很多CPU和内存。
各种依赖。每一个客户机操作系统都需要安装许多依赖。如果你的应用需要连接PostgreSQL的话,则需要安装libpq-dev;如果你使用Ruby的话,应该需要安装gems;如果使用其他编程语言,比如Python或者Node.js,都会需要安装对应的依赖库。
应用。安装依赖之后,就可以在各个客户机操作系统分别运行应用了,这样各个应用就是相互隔离的。
相比于虚拟机,Docker要简洁很多。因为我们不需要运行一个臃肿的客户机操作系统了。
从下到上理解上图:
基础设施(Infrastructure)。
主操作系统(Host Operating System)。所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法”运行”Docker。
Docker守护进程(Docker Daemon)。Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器。
各种依赖。对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于Docker镜像创建的。
应用。应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源
Docker镜像与容器的区别
镜像是文件, 容器是进程。 容器是基于镜像创建的, 即容器中的进程依赖于镜像中的文件, 这里的文件包括进程运行所需要的可执行文件, 依赖软件, 库文件, 配置文件等等...
centos7安装docker
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
使用yum安装
#基本命令 #查看当前服务器内核版本 uname -r #安装 Docker yum -y install docker #启动 Docker 后台服务 service docker start #测试运行 hello-world,由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。 docker run hello-world #启动docker systemctl start docker.service #设置docker开机自启动 systemctl enable docker.service #重启docker systemctl restart docker.service #查看docker版本 docker -v #概要信息 docker info #拉取hello-world测验 docker pull hello-world #镜像查看 docker images #查看容器列表: docker ps -a
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
竞价实例-让ESS省上加省
弹性伸缩(Elastic Scaling Service,ESS),是阿里云提供的一种弹性计算资源管理服务,能够根据您的业务需求与策略,动态的调整计算资源,在业务高峰时,为您增加 ECS 实例,同时,在业务低谷时,减少 ECS 实例,使用ESS服务管理您的 ESC 实例能够有效降低您的生产成本。在 ESS 中,您除了能够购买 按量付费 类型的实例之外,还能够购买 竞价实例(spot instance),在 ESS 的伸缩配置中,选用竞价实例,你将可以享受竞价实例优惠价格(价格波动是按量付费价格的1~10折),同时,当竞价实例的市场价格高于您设定的最高出价,导致您的实例被释放时,ESS 将尝试为您创建新的竞价实例,尽可能的保证伸缩组所需的最小实例数。 弹性伸缩服务(ESS) 弹性伸缩服务可以帮助您建立一组 ECS 实例的集合,称为伸缩组
- 下一篇
“区块链”到底是什么#一枚技术贴#
最近区块链比较火。最早我是听一个朋友提起的,因为我对科技驱动的东西一直很感兴趣,所以也做了一些了解。简单讲,区块链就是一个去中心化的信任机制。 过去区块链主要应用在比特币上,一直到最近半年,区块链已经渐渐开始有了一些其他应用,特别是在金融领域,所以不断有人问我:“浩哥,你给我们讲讲区块链吧”。我今天给大家找来一篇文章,偏科普性质,不需要大家对技术和金融有任何背景,希望对大家有所帮助。 本问答主要针对想了解区块链,无专业技术和金融背景的普通人。会尽量回避一切技术术语。 问:什么是区块链? 答:区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。 通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本就变得很重要。目前就是谁
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器