当前位置: 首页 > article >正文

《Docker:轻量级虚拟化解决方案》

《Docker:轻量级虚拟化解决方案》

在当今的软件开发和部署领域,Docker 以其独特的优势成为了众多开发者和运维人员的得力工具。它是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。

一、Docker 的简介与概述

Docker 的主要目标是 “build,ship and run any app,anywhere”,即通过对应用程序组件的封装、分发、部署、运行等生命周期的管理,使用户的 app(可以是一个 web 应用程序或者数据库应用等)及其运行环境能够做到 “一次封装,到处运行”。

Linux 容器技术的出现解决了应用跨平台部署的问题,而 Docker 就是在其基础上发展而来。将应用运行到 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

Docker 从 17.03 版本之后分为 CE(Community Edition:社区版)和 EE(Enterprise Edition:企业版),对于大多数用户来说,社区版就可以满足需求。

实际上,Docker 就像是一个虚拟化轻量级 Linux 服务器,可以解决我们在开发环境中运行配置问题。它利用沙箱机制,容器之间相互隔离,不会有任何接口,性能开销极低。

二、为什么需要使用 Docker

在软件开发过程中,常常会遇到开发环境与生产环境不一致导致的问题。比如开发了一个 javaweb 项目,需要依赖很多环境配置,如 Tomcat、JDK 环境、Nginx、Redis 环境等。本地和服务器都需要安装这些环境,但是有时候会因为版本冲突而出现问题。而 Docker 可以将该 springboot 项目制作成一个镜像文件,镜像文件中包含 jdk 版本、tomcat 版本信息等,直接部署到 linux 即可,减少依赖冲突概率。

以安装 MySQL 为例,传统方式容易发生版本冲突问题,而使用 Docker 安装则非常方便,只需要执行 “docker pull mysql:5.7” 和 “docker create --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7” 即可。

三、使用 Docker 的好处

  1. 简化配置:安装创建非常方便。
  2. 代码流水线(Code Pipeline)管理:传统项目部署可能需要经过很多环节,容易产生版本的依赖冲突问题。Docker 给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
  3. Devops 开发与运维一体化:减少沟通成本,可以通过 Docker 或者是 k8s 实现。
  4. 虚拟技术,快速部署。
  5. 弹性扩容。

四、Docker 的应用场景

  1. Web 应用的自动化打包和发布。
  2. 自动化测试和持续集成、发布。
  3. 在服务型环境中部署和调整数据库或其他的后台应用。
  4. 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

五、容器与虚拟机区别

虚拟机是在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。从下到上包括物理机、操作系统、虚拟机软件、虚拟操作系统以及在虚拟操作系统中安装的软件和组件等。

Docker 则是开源的应用容器引擎,从下往上看,包括物理机、操作系统、Docker 容器的管理器。依赖和应用都被打包成了 Docker 镜像,运行在 Docker 容器里,容器和容器间是隔离的。

两者主要有以下区别:

  1. 架构方面:虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而 Docker 是在操作系统的层面虚拟化,复用操作系统,运行 Docker 容器。
  2. 启动速度:Docker 秒级启动,而虚拟机通常要按分钟计算。
  3. 资源使用和性能:Docker 所用的资源更少,性能更高。同样一个物理机器,Docker 运行的镜像数量远多于虚拟机的数量。
  4. 隔离性:虚拟机实现了操作系统之间的隔离,隔离级别更高、安全性方面也更强;Docker 是进程之间的隔离。
  5. 很多企业都采用物理机上做虚拟机,虚拟机中跑 Docker 的方式,两者各有优势,不存在谁替代谁的问题。

六、Docker 官网及安装

Docker 官网为 https://docs.docker.com/ 和 https://www.docker.com/ 。

Docker 要求 CentOS7 系统的内核版本在 3.10 以上。安装步骤如下:

1、通过 uname -r 命令查看你当前的内核版本

uname -r

2、 使用 root 权限登录 Centos。确保 yum 包更新到最新,该过程大概需要维持10分钟左右

yum -y update

image-20240910223538308

3、 卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

image-20240910223650335

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

image-20240910223739417

5、 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、 可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、 安装docker

sudo yum install -y docker-ce     #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1

8、 启动并加入开机启动

systemctl start docker
systemctl enable docker

9、 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

http://www.kler.cn/a/303957.html

相关文章:

  • 搭建深度学习开发环境
  • ABC334
  • k8s集群安装(kubeadm)
  • unity基础,点乘叉乘。
  • Java设计模式面试题及参考答案
  • 若依笔记(八):Docker容器化并部署到公网
  • Spring MVC 处理请求
  • 低代码-赋能新能源汽车产业加速前行
  • Anolis 8 NVME over TCP 配置使用
  • Qt-常用控件(3)-输入类
  • 【C++】深究C++三大特性之多态
  • 香港电讯SASE解决方案:终端与云端的安全护航
  • C语言 13 指针
  • 【Unity新闻】Unity将取消Runtime费用
  • Where I can save my openai-apikey safely for my flutter app
  • 【docker】docker 关键技术 —— 镜像制作
  • 宝塔部署Vue项目解决跨域问题
  • 【机器学习】自然语言处理中的Transformer模型:深度解析与前沿发展
  • 从GreaterWMS学习仓库管理系统
  • 在Word中,用VBA比较两段文本的相似度
  • AI创作新手册:精通Prompt提示词的提问策略
  • 基于鸿蒙API10的RTSP播放器(一:基本界面的实现)
  • 【Qt笔记】QScrollArea控件详解
  • 电脑安装OpenWRT系统
  • 黑龙江等保测评二级系统费用解析:如何合理预算?
  • (web自动化测试+python)2