docker-docker介绍
1.docker介绍
1.1 虚拟化技术和相关概念
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象转换后呈现出来,打破实体结构间不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部门是不受现有资源的架设方式,地域或物理组态所限制。一般所说的虚拟化资源包括计算能力和存储资料。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。(比如一台服务器可以虚拟化成10台机器)
kvm:开源的免费的,Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。装在linux系统上可以虚拟化出更多系统
exsi:vmware商用的,装在裸机上,不需要装在linux系统上,可以虚拟化出很多机器(比如我们在网上买了一台服务器,要么是基于exsi,要么是基于kvm)
openstack:是用python开发的一个云平台管理的项目。用来管理虚拟机的软件。
k8s:多机容器管理,容器编排
容器:一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用、系统库和全部重要设置的默认值。
应用程序通过使用容器与底层的宿主机架构解耦。如下图所示,我们可以利用底层机器在容器引擎之上运行多个容器。这促进了容器在各种操作系统和云场景中的部署。
1.2 docker介绍
docker:简单来说就是一种容器技术。Docker 是一个开源的应用容器引擎。其中包括,镜像、容器、仓库,很简单,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web应用或者数据库应用)及其环境能够做到“一次封装,到处运行”。再通俗点说,我们使用Docker,只需要配置一次Docker容器上面的应用,就可以跨平台,跨服务器,实现应用程序跨平台间的无缝衔接。
Docker实际上就相当于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,实现容器虚拟化技术,随用随搬。
Docker 项目的目标是实现【轻量级的操作系统虚拟化解决方案】。Docker的基础是Linux 容器(LXC)等技术。
有了容器技术可以直接将集装箱(也就是镜像)在其他平台上运行,更快捷方便。只要在该集装箱上运行,放在任何平台都没问题。所以开发人员可以直接在虚拟机上开发,也可以直接在docker上开发。
1.3 docker客户端和服务端通信
Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
1.4 docker镜像与容器
镜像:是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。用大白话说就是相当于虚拟机装了操作系统,又装了软件的一堆文件
容器:镜像运行起来就成了容器,可以当做一台虚拟机装了一些软件
它们之间的关系相当于类和对象,镜像是类,一个类可以生成多个对象,容器就是对象。
2.容器和虚拟机的比较
docker与虚拟机的区别:
1、docker启动快速属于秒级别,而虚拟机通常需要几分钟去启动;
2、性能损耗不同,docker需要的资源更少;
3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。
3.注册中心
镜像就是从注册中心中拉取下来的。
比如我们在操作系统上装了docker软件,在docker软件上我们要装一堆镜像,比如我们的镜像有:centos,mysql,redis镜像。每一个镜像运行起来就是一个或多个容器,因为一个镜像可以产生多个容器。那么redis镜像产生的容器,就相当于一个操作系统装了一个redis;mysql镜像产生的容器就相当于一个操作系统装了一个mysql。
4.安装
由于我们后期要把项目放在容器中,最好是在linux环境上做。
1.yum 包更新到最新
yum remove docker docker-common docker-selinux docker-engine
rm -rf /var/lib/docker
2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker
sudo yum install docker-ce
5.查看版本
docker -v
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律