简单了解Docker的概念和作用
什么是Docker?
Docker是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发,并采用了Apache 2.0协议。Docker可以将我们的应用程序打包封装到一个容器中,该容器包含了应用程序的代码、运行环境、依赖库、配置文件等必需的资源,通过容器就可以实现方便快速并且与平台解耦的自动化部署方式,无论你部署时的环境如何,容器中的应用程序都会运行在同一种环境下。
Docker使用的例子
比如我们有一个项目的技术栈很广,依赖很多开源库和中间件。如果正常手动部署的话,需要在服务器上安装运行环境,各种软件,运行时并且做很多配置。如果要在多台服务器部署的话,就要重复操作很多次,相当麻烦。这时使用Docker就可以变得很轻松了,只需要根据应用程序的部署步骤编写一份Dockerfile文件(将安装、配置等操作交由Docker自动化处理),然后构建并发布他的镜像,这样,不管在什么机器上,只需要拉取他需要的镜像,然后就可以直接部署运行了。这里简单理解为把程序的整个运行环境和配置都打包到镜像了。
什么是Docker镜像(Image)?
它类似于VM虚拟机中使用到的镜像,由于任何应用程序都需要有它自己的运行环境,Image就是用来提供所需运行环境的一个模板。
使用docker images 命令可以查看镜像列表。
什么是Docker容器(Container)?
Container是Docker提供的一个抽象层,它就像一个轻量级的沙盒,其中包含了一个极简的Linux系统环境与运行在其中的应用程序。Container是Image的运行实例(Image本身是只读的,Container启动时,Docker会在Image的上层创建一个可写层,任何在Container中的修改都不会影响到Image,如果想要在Image保存Container中的修改,Docker采用了基于Container生成新的Image层的策略),Docker引擎利用Container来操作并隔离每个应用(也就是说,每个容器中的应用都是互相独立的)。
使用docker run命令可以运行一个容器:
docker run --name=aspnetcoredocker -p 7070:80 -d corewebdockertest
Container的优势
Docker与Container的英文单词原意中就可以体会出Docker的思想。Container可以释义为集装箱,集装箱是一个可以便于机械设备装卸的封装货物的通用标准规格,它的发明简化了物流运输的机械化过程,使其建立起了一套标准化的物流运输体系。而Docker的意思为码头工人,可以认为,Docker就像是在码头上辛勤工作的工人,把应用打包成一个个具有某种标准化规格的"集装箱"(其实这里指出的集装箱对应的是Image,在Docker中Container更像是一个运行中的沙盒),当货物运输到目的地后,码头工人们(Docker)就可以把集装箱拆开取出其中的货物(基于Image来创建Container并运行)。这种标准化与隔离性可以很方便地组合使用多个Image来构建你的应用环境(Docker也提倡每个Image都遵循单一职责原则,也就是只做好一件事),或者与其他人共享你的Image。
更新于:2个月前相关文章
- DockerUI 中文可视化Docker管理工具使用示例
- docker 怎么部署 php 应用
- 容器化囧途~没上容器时好好的?
- nrm - npm 镜像源管理工具
- Layui 官网关闭、官网镜像站
- TP6.0 容器和依赖注入
- 使用Docker Wine Qemu KVM在Linux运行Windows应用
- docker部署.net core网站
- Debian Linux国内常用镜像源
- Docker 80端口 绑定多个域名
- composer 国内镜像
- Docker运维常用命令大全
- 使用docker搭建Nginx + PHP + mysql环境
- .NET容器化支持和云原生支持
- 如何在 Docker 容器中运行 Emby 媒体服务器
- 如何在 Docker 容器中运行 Nginx 代理管理器
- 使用 Docker 运行 Windows 容器
- 创建Python Docker镜像教程
- 用于管理 Docker 容器的最佳 UI 应用程序
- Docker 在 .NET 中的应用