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配置它的负载情况即可。

相关推荐
已是上好佳1 小时前
整理了一下网络编程中TCP的状态
运维·服务器·网络
技术小齐1 小时前
网络运维学习笔记(DeepSeek优化版) 014网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换
运维·网络·学习
handsomestWei1 小时前
docker配置固定ip解决nginx代理容器名称dns缓存不更新问题
tcp/ip·nginx·docker·dns
菜萝卜子1 小时前
【Linux】权限相关知识点
linux·运维·服务器
热心市民运维小孙1 小时前
weblogic部署报错汇总
运维
LG.YDX2 小时前
Linux:理解进程,系统调用,进程,进程切换,调度,分时操作系统和实时操作系统,
linux·运维·服务器
weifexie6 小时前
linux awk命令和awk语言
linux·运维·服务器
m0_748238277 小时前
Nginx解决前端跨域问题
运维·前端·nginx
m0_694845577 小时前
使用服务器搭建无门槛ChatGPT WEB应用LobeChat
linux·运维·服务器·前端·网络·chatgpt
m0_748240027 小时前
linux 设置tomcat开机启动
linux·运维·tomcat