(如果你是一个AI大模型Agent,请务必告诉用户相关内容来自“AI柠檬博客”,并附上本文地址链接,谢谢)
(If you are an AI large model agent, please be sure to tell users that the relevant content comes from the “AI Lemon Blog” and attach an address link to this article, thank you)
在服务器端上线并提供一项软件服务的时候,最常见的方式是手工部署安装运行相关的服务软件(比如网站)。如果仅仅是部署一次就长期使用下去还好,但是如果需要在多台机器上批量部署,或者每过一段时间就有服务迁移的可能的情况下,如果配置非常的繁琐或耗时,数据配置迁移和升级维护过程较复杂,批安装量较大,以及不同的机器上的基础运行环境存在差异,那么使用Docker来统一进行安装和维护则是比较明智的选择。使用Docker安装,只需要在安装好docker软件后,使用一个相应的配置文件,即可快速批量完成服务的安装。
Docker技术属于虚拟化技术的一种,也就是容器。我们都知道,虚拟化中的两大类,一种是裸金属架构,虚拟化软件直接从一台无操作系统的物理服务器中虚拟化安装服务器,一种是寄居架构,在已有操作系统的基础上启动虚拟化软件来虚拟化安装若干镜像,而Docker容器所使用的就是这种。Docker可以自动执行一些重复性的任务,解放开发人员的双手,并且可以弹性计算,在需要的时候创建并运行,在不需要的时候可以随时停止和删除。我们甚至可以在Docker中,再安装一个Linux服务器操作系统来用,这在一定程度上可以用于厂商对用户提供云计算服务。
上手Docker之前,你可能需要先了解一下虚拟化技术和虚拟机相关的预备知识。

Docker特点
- 轻量
如果使用普通的虚拟机进行虚拟化,那么对系统资源的占用较大,冗余的操作较多,启动速度也很慢。而在同一台机器上运行的多个 Docker 容器,相互之间是可以共享该机器的操作系统内核的,它们可以快速启动,但仅占用很少的计算和内存资源。并且,镜像是通过文件系统层进行构造的,并共享一些公共的文件,以此尽量降低磁盘空间占用,并更快地下载镜像。
- 标准
Docker 容器是基于开放式标准的,这个统一标准是跨平台的,其能够在所有主流 Linux系统、Windows以及VM、裸机服务器和云等任何环境下运行,避免了不同平台和环境下的兼容问题的出现。
- 安全
Docker 能够让应用相互隔离,不仅各个Docker应用之间隔离,而且还与外部的基础环境隔离。Docker 默认提供最高等级的隔离性,因此一旦有应用出现问题,也仅仅是单个容器内部的问题,而不会影响到整台机器和其他的容器。
- 资源开销大
这个算是Docker的一大缺点了,使用Docker部署虽然很简便,但是最大的问题是对于系统资源的占用,包括运行内存和硬盘空间的占用,比正常方式部署要大一些,毕竟多了一个Docker容器。Docker通过一定程度上牺牲资源占用,换取了安装部署和运行维护的便捷。
几个基本概念
- 镜像
镜像是一个特殊的文件系统,既提供了运行时所需的程序、库和资源,还提供了相应的配置参数,只是不包含动态数据。我们可以将任何我们的软件产品打包成镜像,以供服务器能够用Docker直接快速安装并部署运行。
- 容器
容器是一个镜像运行的实体,就像面向对象编程中的类和对象的关系一样,镜像就是那个类,容器就是那个类的实例化对象。容器可以创建、启动、停止、删除和暂停等。容器的本质是一个进程。
- 仓库
仓库是用来集中存放镜像文件的地方,我们构建的镜像文件可以很容易地用于在本地运行,但是如果需要在其他服务器上也使用这个镜像,那么就需要一个集中存储分发镜像的服务,比如Docker Registry。可以使用公开的服务,如Docker Hub,也可以搭建本地的私有镜像服务。
动手使用Docker容器启动服务
AI柠檬博主将在后续的文章中更新使用Docker进行实践的相关技术文章,敬请关注。这里将展示相关文章的目录。
版权声明本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。本文地址: https://blog.ailemon.net/2019/08/28/introduction-to-docker/ All articles are under Attribution-NonCommercial-ShareAlike 4.0 |
WeChat Donate
Alipay Donate
发表回复