searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

基于CentOS 7的docker安装(docker概念介绍)

2022-11-22 08:17:38
286
0

1.什么是Centos 7

这个问题我在写linux虚拟机安装的时候介绍过,不太清楚的小白可以跳转至以下链接的1.2章节:

https://www.ctyun.cn/developer/article/353763363754053

2.什么是docker

Docker 是一个开源的应用容器引擎,这样听起来非常的抽象,一句话除了开源其他的就看不懂,没关系,我们接下来就来通俗的介绍一下。注意这里介绍的并不是很详细,只是一个简单的概念向简介,需要进一步了解的读者可以自行去查找更专业的资料

2.1 环境部署难题

现在的大型工程/项目开发中,往往都包含的数量非常庞大的组件/微服务,尤其是很多适用范围非常广、发展已经非常成熟的语言(比如java语言的多个框架)已经有很多“轮子”来供我们使用。但可惜的是,这些东西的使用并不容易,部署环境以及搞清楚依赖关系是一个非常庞大的工程;

有些刚刚入门的开发可能感觉不到,这里放一张图:

上图只是随便找的一个小模块内部的包依赖关系,通常在工程开发中你需要用到几十上百个模块,尤其如果你是运维会更加头疼。因为研发可能在他的电脑上可以跑起来,但由于种种问题,运维侧部署一个完美的环境是非常困难的,即使你有文档。

具体来说,你不仅仅需要搞清楚各个包/组件之间的依赖关系(先安哪个再安哪个),还需要特别注意各个模块的版本号以及相应配置方法,此外还需要适配你在运行的环境(如果开发那边是CentOS 8你是CentOS 7也有可能跑不起来)。

因此就有了著名的:“在我的电脑上好好的,怎么到你那边就不行了”

为解决这个问题,容器技术出现了,而docker就是基于linux容器技术发展而来的

2.2 docker vs 传统虚机

简单的说,docker将我们代码运行需要用到的所有东西(函数库、依赖的包、配置文件、应用等)打包成一个镜像(image),你可以把镜像放在一个容器(container)里去运行,各个容器间是隔离的,互相不干扰(因此可以同时运行多个镜像)。(镜像的概念同样在1.2里介绍了:https://www.ctyun.cn/developer/article/353763363754053

你可以把容器想象成一个集装箱,所有代码运行需要用到的环境都放在集装箱里,外面的人不用关心集装箱里是什么,只要直接拿来用就可以了;

在这个容器虚拟化技术出现之前吗,传统的虚拟机是怎么运行镜像的呢?那就是直接在linux虚拟机上安装相应的环境,即由:虚拟机管理系统,来对镜像运行所需要的种种依赖进行安装与管理。这就导致了可能需要多个操作系统来对不同的依赖进行解析

如下图,举一个最简单的例子:比如一个项目运行需要node JS和MySQL,传统的虚拟机是怎么做的呢?需要将操作系统作为环境一起打包,因为如果将一个Ubuntu版本的MySQL应用安装到CentOS系统,调用时就会报错;但是docker则不需要,docker直接将所调用系统的函数库一起打包,需要调用的时候,通过这些函数库直接与底层的linux内核进行交互,这样就可以将原本需要几个GB的空间(因为传统虚机需要打包操作系统)直接压缩到MB级别

2.3 docker三要素

docker三要素分别是:镜像(images)、容器(container)、仓库(repository)

镜像我们刚刚已经简单的解释过了,可以简单的理解成我们需要跑起来的工程所打包的一个iso文件(比如在我之前写的linux虚拟机安装文章中,就需要用CentOS镜像来进行安装);又或者可以理解为容器的“源码”,因为docker镜像都是在容器中运行的

容器同样也是个很简单的概念,诚然我们可以在虚拟机上运行镜像,但是这样出现的问题就是如果我们需要做一些操作:比如对比不同版本镜像的功能、运行多个镜像来实现一个大的架构等,可能就会出现互相干扰的情况。这个时候就需要容器(可以简单的看做一个简易版的linux环境/镜像运行的一个实例),一个镜像可以在多个容器中运行,多个容器可以在一台虚拟机上运行且互不干扰。可以想一想刚刚我们将容器比作集装箱,只要把源码(镜像)塞进去并且锁好,多个集装箱可以放在一起且互不影响

最后就是仓库的概念,也很简单,实际上就是一个存放镜像的场所,大家可以都把自己的镜像托管到某一个仓库,这样所有人都可以从这里进行下载。比如最大的官方仓库:docker hub,以及国内比较流行的阿里云仓库等

3.linux虚拟机安装docker

这里我们基于的是CentOS 7,如何创建、安装、配置虚拟机,可以参考本人专栏的文章,这里就直接开始安装

(社区代码上传有问题,这里先放图片,好在命令都不是很长)

docker version如果可以出现版号,那说明安装成功了关于docker的使用,之后会单独开文来分享

0条评论
0 / 1000
才开始学技术的小白
23文章数
2粉丝数
才开始学技术的小白
23 文章 | 2 粉丝
原创

基于CentOS 7的docker安装(docker概念介绍)

2022-11-22 08:17:38
286
0

1.什么是Centos 7

这个问题我在写linux虚拟机安装的时候介绍过,不太清楚的小白可以跳转至以下链接的1.2章节:

https://www.ctyun.cn/developer/article/353763363754053

2.什么是docker

Docker 是一个开源的应用容器引擎,这样听起来非常的抽象,一句话除了开源其他的就看不懂,没关系,我们接下来就来通俗的介绍一下。注意这里介绍的并不是很详细,只是一个简单的概念向简介,需要进一步了解的读者可以自行去查找更专业的资料

2.1 环境部署难题

现在的大型工程/项目开发中,往往都包含的数量非常庞大的组件/微服务,尤其是很多适用范围非常广、发展已经非常成熟的语言(比如java语言的多个框架)已经有很多“轮子”来供我们使用。但可惜的是,这些东西的使用并不容易,部署环境以及搞清楚依赖关系是一个非常庞大的工程;

有些刚刚入门的开发可能感觉不到,这里放一张图:

上图只是随便找的一个小模块内部的包依赖关系,通常在工程开发中你需要用到几十上百个模块,尤其如果你是运维会更加头疼。因为研发可能在他的电脑上可以跑起来,但由于种种问题,运维侧部署一个完美的环境是非常困难的,即使你有文档。

具体来说,你不仅仅需要搞清楚各个包/组件之间的依赖关系(先安哪个再安哪个),还需要特别注意各个模块的版本号以及相应配置方法,此外还需要适配你在运行的环境(如果开发那边是CentOS 8你是CentOS 7也有可能跑不起来)。

因此就有了著名的:“在我的电脑上好好的,怎么到你那边就不行了”

为解决这个问题,容器技术出现了,而docker就是基于linux容器技术发展而来的

2.2 docker vs 传统虚机

简单的说,docker将我们代码运行需要用到的所有东西(函数库、依赖的包、配置文件、应用等)打包成一个镜像(image),你可以把镜像放在一个容器(container)里去运行,各个容器间是隔离的,互相不干扰(因此可以同时运行多个镜像)。(镜像的概念同样在1.2里介绍了:https://www.ctyun.cn/developer/article/353763363754053

你可以把容器想象成一个集装箱,所有代码运行需要用到的环境都放在集装箱里,外面的人不用关心集装箱里是什么,只要直接拿来用就可以了;

在这个容器虚拟化技术出现之前吗,传统的虚拟机是怎么运行镜像的呢?那就是直接在linux虚拟机上安装相应的环境,即由:虚拟机管理系统,来对镜像运行所需要的种种依赖进行安装与管理。这就导致了可能需要多个操作系统来对不同的依赖进行解析

如下图,举一个最简单的例子:比如一个项目运行需要node JS和MySQL,传统的虚拟机是怎么做的呢?需要将操作系统作为环境一起打包,因为如果将一个Ubuntu版本的MySQL应用安装到CentOS系统,调用时就会报错;但是docker则不需要,docker直接将所调用系统的函数库一起打包,需要调用的时候,通过这些函数库直接与底层的linux内核进行交互,这样就可以将原本需要几个GB的空间(因为传统虚机需要打包操作系统)直接压缩到MB级别

2.3 docker三要素

docker三要素分别是:镜像(images)、容器(container)、仓库(repository)

镜像我们刚刚已经简单的解释过了,可以简单的理解成我们需要跑起来的工程所打包的一个iso文件(比如在我之前写的linux虚拟机安装文章中,就需要用CentOS镜像来进行安装);又或者可以理解为容器的“源码”,因为docker镜像都是在容器中运行的

容器同样也是个很简单的概念,诚然我们可以在虚拟机上运行镜像,但是这样出现的问题就是如果我们需要做一些操作:比如对比不同版本镜像的功能、运行多个镜像来实现一个大的架构等,可能就会出现互相干扰的情况。这个时候就需要容器(可以简单的看做一个简易版的linux环境/镜像运行的一个实例),一个镜像可以在多个容器中运行,多个容器可以在一台虚拟机上运行且互不干扰。可以想一想刚刚我们将容器比作集装箱,只要把源码(镜像)塞进去并且锁好,多个集装箱可以放在一起且互不影响

最后就是仓库的概念,也很简单,实际上就是一个存放镜像的场所,大家可以都把自己的镜像托管到某一个仓库,这样所有人都可以从这里进行下载。比如最大的官方仓库:docker hub,以及国内比较流行的阿里云仓库等

3.linux虚拟机安装docker

这里我们基于的是CentOS 7,如何创建、安装、配置虚拟机,可以参考本人专栏的文章,这里就直接开始安装

(社区代码上传有问题,这里先放图片,好在命令都不是很长)

docker version如果可以出现版号,那说明安装成功了关于docker的使用,之后会单独开文来分享

文章来自个人专栏
适合初学者的linux入门
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
0