Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识

前言

记录时间 [2024-4-5]


在先前的文章中,笔者进行了Windows系统下YOLOv8模型的简单测试,并由此引发思考:是否能尝试将此模型运行在Linux中呢?又或者,运行在Docker中。关于Docker的学习就这么展开了。

本文便是有关Docker入门的开篇之作,进行Docker概述,期待读者能够从一无所知到对Docker有一个初步的认识

文章为零基础学习Docker做了一些准备:


Docker 概述


那么,Docker为什么会出现呢?

相信大家对于环境这个词一定很熟悉吧,开发的项目需要在特定的环境中运行,而有些环境的配置极其复杂,给运维造成一定的困难。而Docker,就是解决问题的关键所在。

Docker是一个开源的应用容器引擎,基于Go语言开发,其核心思想在于隔离,即:将项目+它所需要的运行环境打包安装在各自的箱子里,每个箱子互相隔离。

Docker通过隔离机制,能极大提升服务器的利用率。

Docker广泛运用于开发和运维,能很好地解决环境搭建的麻烦,避免多个应用端口冲突。通过下载发布的镜像,几乎能实现一套流程完成“开发、打包、部署、上线”。


Docker 历史


2010 年,Solomon Hykes和朋友们在美国旧金山成立了一家公司dotCloud,最初主要提供基于LXC (Linux Container)PaaS云计算服务。他们将自己的技术,即容器化技术,命名为Docker

然而,在诞生之初,Docker并没有引起行业的注意,直到 2013 年Docker开源,开源当月发布了Docker 0.1版本,此后每个月Docker都会更新一个版本。后来,越来越多的使用者发现了它的优点,于是它火了。

2014 年 6 月 9 日,Docker 1.0版本正式发布!


Docker 优势(对比虚拟机)


Docker为什么会这么火?因为它十分轻巧。

纵观虚拟化技术的发展,在Docker容器技术问世前,虚拟机技术的使用占主导。在Windows操作系统中安装Vmware软件,再由该软件虚拟出一台或多台电脑(Linux Centos原生镜像),这些虚拟出来的电脑即为虚拟机。而一台虚拟机的内存往往占好几个G,运行起来非常笨重,更何况实现隔离需要开启多个虚拟机。


如图,图片来源VM会模拟出一台完整的电脑,造成了资源和内存的浪费。而Docker每个项目运行在单独的容器里,且容器直接运行在OS之上。容器化技术不是模拟一个完整的操作系统。

在这里插入图片描述


虚拟机技术缺点:

  • 资源占用多
  • 冗余步骤多
  • 启动很慢

Docker和虚拟机技术的不同之处:

  • 传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
  • 容器内的应用直接运行在宿主机的内核,容器没有自己的内核,也没有虚拟硬件,因此十分轻巧。
  • 不同容器之间互相隔离,每个容器内都有一个属于自己的文件系统,互不影响,因而安全。

虚拟化技术 镜像 实现隔离 内存 启动时间
VM Linux Centos原生镜像(一个电脑) 需要开启多个虚拟机 G级别 分钟级
Docker 镜像(最核心的环境) 运行镜像即可 M级别 秒级

我们将容器技术虚拟机技术进行对比,不难看出,Docker容器技术的优势明显。可以说,开发人员需要掌握这项技术。


Docker 作用(能干嘛)

DevOps(开发、运维)


更快速的应用交付和部署

  • 传统:一堆帮助文档,安装程序;
  • Docker:打包镜像发布测试,一键运行。

更便捷的升级和扩缩容

  • 使用Docker之后,可以将应用部署到多个容器中;
  • 一个服务器上能运行多个容器,容器之间可以交互;
  • 方便应用升级和扩展。

更简单的系统运维

  • 保证开发/测试环境的高度一致。

更高效的资源利用

  • Docker是内核级别的虚拟化,在一个物理机上可以运行多个容器实例,服务器的性能可以被压榨到极致。

Docker 基本组成


如图(图片来源网络),Docker客户端、服务器,和远程仓库三部分组成,在Docker守护进程中包含镜像和容器,一个镜像可以运行在多个不同的容器中。基本过程:客户端启动Docker服务,去远程仓库拉取镜像,然后运行在容器中。


在这里插入图片描述


镜像image

  • Docker镜像类似于模板,通过这个模板可以创建容器服务。如:tomcat镜像 ==> run ==> tomcat01容器(容器提供服务)
  • 通过这个镜像可以创建多个容器,最终服务/项目运行在容器中。

容器container

  • 容器相当于一个简易的Linux系统;
  • 通过镜像来创建容器,在容器中可独立运行一个/一组应用;
  • 基本命令:启动/停止/删除…

仓库repository

  • 仓库是存放镜像的地方,分为公有仓库和私有仓库;
  • 默认是国外的:Docker Hub
  • 配置镜像加速:阿里云容器服务。

总结


本文进行了Docker概述,介绍其历史、优势、作用,以及基本组成。通过此,相信大家对Docker有了一个初步的认识。接下来就进入Docker的安装和基本命令使用了。


一些参考资料


狂神说系列Docker教程:https://www.bilibili.com/video/BV1og4y1q7M4/

Docker官网:https://www.docker.com/

Docker官方文档:https://docs.docker.com/engine/install/centos/

Docker远程仓库:https://hub.docker.com/

相关推荐

  1. docker学习笔记——数据卷一些简单命令

    2024-04-06 09:50:02       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 09:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 09:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 09:50:02       87 阅读
  4. Python语言-面向对象

    2024-04-06 09:50:02       96 阅读

热门阅读

  1. Element UI 消息提示 Message

    2024-04-06 09:50:02       32 阅读
  2. 不同阻抗组合类型时,机器人阻抗是什么?

    2024-04-06 09:50:02       37 阅读
  3. 【办公软件】开发常用网站

    2024-04-06 09:50:02       39 阅读
  4. linux扩展正则表达式()

    2024-04-06 09:50:02       42 阅读
  5. mysql 常见数据处理 dml

    2024-04-06 09:50:02       35 阅读