云计算--Docker

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云计算--Docker

什么是Docker?


Docker是计算虚拟化的一种方式,和使用虚拟机进行虚拟化是类似的。由于近几年Docker技术的流行和发展。所以单独介绍一下Docker。首先先回答下面一个问题。


1.Docker会替代调虚机吗?


答案:不会。

原因:是有些遗留应用是运行在windows系统上的。有些应用可以直接迁移到虚拟上,但是不能直接在容器中运行。现在得趋势是虚拟机和容器同时发展。容器的优点是敏捷性和高性能。而虚拟机的优点是更强的隔离性和运维的简单性。 Docker不但不会替代虚拟机,这两种技术经常还结合起来应用。很多的公有云都是先使用虚拟机技术,然后在虚拟机上运行容器。


2.什么是Docker容器?


一句话描述容器: 容器是一个特殊的Linux进程。

只不过Docker对这个进程进行了特殊的隔离和限制,使得这个进程能够实现"应用容器"的效果。应用容器要达到的效果就是 :


1:给应用的应用提供一个单独的空间,其实就是一个单独的进程;


2:容器之间互相不影响,资源隔离;


3:容器可以在任何环境上运行。


为了达到上述的效果,Docker对这个进程进行了如下3个方面进行了隔离和控制:


2.1 . 通过Namespace对进程进行隔离:

Namespace是Linux内核提供的一个隔离系统资源的方法,它实现的功能就是将Linux的资源以Namespace为单位进行隔离。


2.2 . 通过CGroup进行资源限制:

Namespace只是限制了进程对于OS的视图,但是从OS的视角来看,这些被限制了的进程和普通的进程并没有区别。不管进程是否被限制,他们使用的都是同一个宿主机的OS内核。容器进程虽然被隔离了,但是它仍然可以不受限制的任意使用宿主机OS的资源。这显然不是一个“沙盒”应该表现出来的行为。所以必须对容器进程能够使用的系统资源进行限制,这就是Linux Control Group机制(简称CGroup)。CGroup主要作用就是限制进程能够使用的OS资源上限,比如CPU,内存,磁盘,网络带宽等。


2.3 . 通过容器镜像(或者叫rootfs)为容器提供单独的隔离的文件系统:

容器进程的目的是拥有自己的独立的文件系统,自己的进程在运行的时候可以在这个独立的文件系统中运行。这就需要用到上述的Mount Namespace,需要注意的是Mount Namespace对容器进程视图的改变需要伴随着挂在操作才能生效。所以说容器进程在启动之前需要做的事情就是挂载一个完整的操作系统的目录即可。而在Linux中正好有一个现成的命令chroot可以完成这个动作。


3.什么是容器镜像?


正如上述所言,这个挂载在容器根目录上的用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”。它还有一个更为专业的名字,叫作:rootfs(根文件系统)。用一句话说:容器镜像就是一个文件系统。

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
177 0
|
9月前
|
应用服务中间件 云计算 nginx
云计算-5-docker commit定制镜像
镜像是容器的基础,在每次执行docker run的时候都会指定那个镜像作为容器的基础,之前我们的例子中的镜像都是来自镜像仓库(Docker Hub,以后可能会来源于自己的私有仓Harbor),这些镜像有时候可能不满足我们的需求,那么就需要我们定制镜像以达到我们的需要,接下来几章接我们介绍一下如何定制镜像。
76 0
|
9月前
|
关系型数据库 MySQL Nacos
​云计算--Docker搭建Nacos以及搭建过程中常用的Docker命令
​云计算--Docker搭建Nacos以及搭建过程中常用的Docker命令
149 0
|
5月前
|
分布式计算 Hadoop 应用服务中间件
云计算-webservice-springcloud-hadoop-docker-openstack
云计算-webservice-springcloud-hadoop-docker-openstack
23 0
|
6月前
|
Ubuntu Linux 云计算
云计算(Docker)
云计算(Docker)
129 2
|
9月前
|
NoSQL 关系型数据库 MySQL
云计算--Docker典型命令Docker run部署nginx\mysql\redis
云计算–Docker典型命令Docker run部署nginx\mysql\redis 上两章节分别介绍了Docker在Centos和Ubuntu上的安装方法,这次我们就来介绍一下docker常用命令之一的docker run,并且部署常用应用mysql、redis、nginx作为docker run的示例。
143 0
|
9月前
|
Ubuntu 应用服务中间件 云计算
云计算--Docker在Ubuntu上安装
云计算--Docker在Ubuntu上安装
253 0
|
10月前
|
分布式计算 Ubuntu Hadoop
Hadoop生态系统中的云计算与容器化技术:Apache Mesos和Docker的应用
Hadoop生态系统中的云计算与容器化技术:Apache Mesos和Docker的应用
|
弹性计算 安全 Linux
《云计算技术》实验-Docker部署
安装Docker(Linux) 部署一个简单的Python应用 部署c++应用
232 0
《云计算技术》实验-Docker部署