Docker基础篇——什么是Docker与Docker的仓库、镜像、容器三大概念

大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起了解下什么是Docker与与Docker的仓库、镜像、容器三大概念。

什么是Docker?

Docker是一个开源的应用容器引擎,它是一种容器化的技术。

**它的功能:**将我们的系统(如:ERP系统、OA系统、自己公司开发的软件)等相关应用程序与相关的依赖包,打包成一个可以随意移动的"包",这个"包"也就是容器镜像。通过这个容器镜像,可以在不同的环境实现快速部署,保证应用程序的一致性与可移植性。

讲个小故事方便理解它是什么?能做什么?

一家公司开发一套人脸识别的系统,这套人脸识别系统后台有很多的相关应用程序和相关的依赖包,现在有10家专业考勤公司要购买这套人脸识别系统,但是这10家考勤公司提供的操作系统环境五花八门,有的提供Win10系统、有的提供Ubuntu12.04系统、有的提供Ubuntu20.10系统、有‌的提供RedHat系列的操作系统。

这就让这家公司的老板着急了,理论上我们人脸识别系统都支持上述所有操作系统部署,但是每个系统的小版本和环境可能会有很大的差异性,没有做过相关的兼容性系统测试呀,到时候遇到问题太影响用户体验和公司的口碑。

这时候我们的一个技术人员站出来说,老板交给我来解决,我们可以使用Docker技术来解决当前所遇到的难题。

在Docker中只要我们将人脸识别的所有应用程序和相关依赖包打包成一个容器镜像。这个容器里面装有系统运行所需的一切。到时候只要在用户各自的操作系统中安装一个Docker。我们可以轻松的将打包好的人脸识别容器镜像部署到他们的环境中。

Docker具有强大的隔离和封装功能,不管用户的操作版本如何,它都能保证容器内的应用程序和依赖包稳定、一致性环境中运行,解决兼容性问题。

因为Docker容器是没有独立的操作系统,它的所有容器都是共享操作主机的系统内核。它创建的所有容器,每一个容器都拥有独立的运行环境,并且容器有自己的根文件系统,容器虽然共享操作主机内核,但是可以对网络、进程、文件、环境等信息跟宿主机(服务器或者操作主机)相互隔离开。

Docker三大核心概念

仓库(Repository)

用于存放各种镜像的地方,对镜像进行统一管理。

Docker Hub是常见的公共仓库,除此之外还可以搭建自己的私有仓库。

镜像(image)

创建的镜像容器,比如刚刚说的人脸识别镜像容器,里面包括了所有的应用程序和相关依赖包、环境变量等信息。

可以理解为是一个软件安装包。

容器(Container)

镜像运行的实例,可以对容器进行启动、停止、删除等操作。、

可以理解为可以运行的软件,比如QQ、微信这种。

Docker一些优点

1、环境的一致性:解决本地开发环境可以使用,到其他不同环境出现的各种奇葩问题。

2、快速部署:通过容器镜像可以快速部署应用,缩短部署的时长。

3、资源利用率高:因为它是共享的操作机系统内核,占用的资源就少,比如同样一个50G内存,通过虚拟机可以部署2台服务,但是通过Docker可能是它的2倍以上的资源。

4、版本管理:可以对镜像进行版本控制,当需要进行版本迭代可以快速回滚、迭代。

5、易于扩展:可以很轻松的实现水平扩展。比如人脸识别系统当业务量太大后,我们可以快速通过原有的人脸识别容器镜像运行一个新的容器,运行时修改下宿主机的端口映射并且使用负载均衡技术如nginx配置它的负载情况即可。

相关推荐
一心0921 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上1 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊1 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y2 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程2 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
DuelCode3 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
你想考研啊5 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks5 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
饥饿的半导体6 小时前
Linux快速入门
linux·运维
杨浦老苏7 小时前
开源服务运行监控工具Lunalytics
docker·群晖·网站监控