docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈

devtools/2024/12/29 11:07:15/

docker-docker-docker-docker-">docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈

docker-">docker介绍

首先我们要知道docker的官网
Docker: Accelerated Container Application Development

image

这是docker官网,是不是觉得有点似曾相识,看起来和git 对应的代码托管平台 GitHub gitee 很类似,但是他们是有区别的。

  • docker基于容器技术,利用 Linux 内核的命名空间(Namespaces)和控制组(cgroups)等功能来创建独立的运行环境。容器共享主机操作系统的内核,当启动一个 Docker 容器时,Docker 引擎会根据容器所基于的镜像来创建一个隔离的文件系统、进程空间、网络接口等。例如,在一台服务器上可以同时运行多个基于不同操作系统(如 Ubuntu、CentOS 等)的容器,这些容器相互独立,就像运行在不同的服务器上一样,但实际上它们共享主机的内核资源。

而gitee和Github基于版本控制系统(如 Git)构建。它通过存储库(Repository)来管理代码。

扩展知识:

一、Docker 是什么

  1. 定义
    • Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包成一个称为容器的标准化单元。容器是轻量级、可移植的执行环境,在任何支持 Docker 的操作系统上都能以相同的方式运行。
    • 简单类比,就像是把应用程序和它运行所需要的所有东西(如库、配置文件等)都装在一个 “盒子”(容器)里,这个 “盒子” 可以很方便地在不同的地方(不同的服务器、开发环境、测试环境等)移动和运行,而且里面的东西(应用程序的运行环境)不会受到外部环境的干扰。
  1. 核心概念
    • 镜像(Image)镜像是一个只读的模板,包含了运行容器所需的文件系统和配置。例如,一个基于 Ubuntu 操作系统的 Web 服务器应用镜像,会包含 Ubuntu 操作系统的文件系统,以及安装好的 Web 服务器软件(如 Nginx)及其配置文件。可以把镜像看作是容器的 “蓝图”。
    • 容器(Container):容器是从镜像创建的运行实例。它是一个独立的运行环境,有自己的进程空间、网络接口和文件系统。以刚才的 Web 服务器为例,根据 Web 服务器镜像创建的容器,就是实际运行 Web 服务器应用的地方。容器可以被启动、停止、删除等操作。
    • 仓库(Repository):仓库是用于存储和分发镜像的地方,类似于代码仓库。Docker Hub 是最常用的公共仓库,上面有大量官方和社区维护的镜像。开发者可以将自己创建的镜像推送到仓库中,也可以从仓库中拉取别人创建的镜像来使用。
  1. 优势
    • 一致性环境:确保应用在不同的环境(开发、测试、生产)中以相同的方式运行,减少了因环境差异导致的 “在我机器上可以运行” 的问题。
    • 轻量级和高效:相比于传统的虚拟机,容器更加轻量级。因为容器共享主机操作系统的内核,不需要像虚拟机那样运行完整的操作系统,从而节省了大量的系统资源,启动速度也更快。
    • 易于部署和扩展:可以通过简单的命令快速部署容器,并且可以很容易地根据应用的负载情况进行扩展,比如启动多个相同的容器来处理更多的请求。

安装部署

Linux | Docker Docs

这里是 docker的下载地址,优雅草目前采用的系统均为Linux Ubuntu ,因此本文优雅草央千澈也就以Ubuntu为示范

image

这里我们点击来到了详细说明,这里我们大意是要安装docker 桌面

第一步:gnome-terminal安装

docker这里提示对于非Gnome桌面环境,gnome-terminal必须安装。

扩展知识:

在 Ubuntu 系统中,非 Gnome 桌面环境是指除了 Gnome 之外的其他桌面环境。

一、常见的非 Gnome 桌面环境

  1. KDE Plasma
    • 特点
      • 高度可定制性。它提供了丰富的桌面小部件,用户可以根据自己的喜好对桌面进行个性化设置,比如可以在桌面上添加天气小部件、系统资源监视器小部件等。
      • 具有美观的视觉效果。KDE Plasma 的主题和图标设计精美,并且支持多种主题切换,能给用户带来舒适的视觉体验。
      • 功能强大的文件管理器。Dolphin 是 KDE Plasma 的默认文件管理器,它支持强大的文件搜索功能、标签式浏览以及网络共享功能等。
    • 适用场景:适合那些追求高度定制化、需要强大的文件管理功能和美观界面的用户,特别是对设计、多媒体等工作有需求的用户。例如,平面设计师可以利用其定制功能将桌面设置成符合自己工作流程的样式,方便快速访问设计工具和素材。
  1. XFCE
    • 特点
      • 资源占用少。相比 Gnome 和 KDE Plasma,XFCE 对系统资源的要求较低,在老旧设备或者资源有限的计算机上也能流畅运行。
      • 简单易用。它的界面简洁,操作逻辑清晰,对于初学者或者只是需要一个基本桌面环境来完成日常任务(如浏览网页、处理文档)的用户来说非常友好。
      • 稳定性高。XFCE 经过长期的发展,其稳定性得到了很好的验证,很少出现崩溃等问题。
    • 适用场景:适用于低配置设备,如老旧的笔记本电脑或者服务器的桌面管理。也适合那些不需要复杂功能,只希望有一个稳定、简单桌面环境的用户。
  1. LXQt/LXDE
    • 特点
      • 轻量级。这是其最显著的特点,它的设计目标是在资源有限的系统上提供基本的桌面功能。它的内存占用非常小,能够在低性能的硬件上快速启动和运行。
      • 快速高效。启动速度快,应用程序的响应时间也较短,为用户提供了高效的操作体验。
      • 简洁的界面。界面设计简洁明了,没有过多的装饰,专注于提供基本的桌面组件和功能。
    • 适用场景:主要用于嵌入式系统、小型设备(如树莓派)或者对性能要求极高的低配置计算机,如一些用于网络监控或简单数据采集的设备。

二、与 Gnome 桌面环境的对比

  1. 设计理念
    • Gnome 桌面环境注重简洁和易用性,采用了现代的设计风格,以简洁的界面和直观的操作方式为主要特点。例如,Gnome 的活动概览功能可以让用户方便地在多个工作区和应用程序之间切换。
    • 非 Gnome 桌面环境各有其设计重点。如 KDE Plasma 注重定制和功能丰富性,用户可以对桌面的每一个细节进行定制;XFCE 更偏向于简单和资源效率,提供基本的桌面功能而没有过多的复杂设计。
  1. 资源占用
    • Gnome 桌面环境在资源占用方面相对较高,特别是在较旧的硬件设备上可能会出现性能下降的情况。
    • 非 Gnome 桌面环境如 XFCE 和 LXQt/LXDE 则在资源占用上有优势,能够在较低配置的设备上良好运行。
  1. 功能和定制程度
    • Gnome 提供了一套相对固定的功能和操作方式,虽然也有一定的扩展性,但定制程度相对有限。
    • 非 Gnome 桌面环境的功能和定制程度差异较大。KDE Plasma 的定制功能非常强大,用户可以改变桌面的几乎所有方面;XFCE 的定制程度适中,提供了基本的定制选项来满足用户的日常需求;LXQt/LXDE 则主要提供基本的桌面功能定制。

如何来检测一下我们的服务器是否是非Gnome桌面环境,

在终端中输入 echo $XDG_CURRENT_DESKTOP ,如果输出不是 ubuntu:GNOME ,则不是 Gnome 桌面环境。例如输出为 ubuntu:XFCE ,就表明使用的是 XFCE 桌面环境.

image

这个就是官网整体的安装描述,我们直接执行安装:

第一步,更新apt库

执行
sudo apt-get update

image


我们可以看到显示了腾讯云的镜像,如果你们是阿里云应该会显示阿里。

第二步,执行安装

sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

image

中途会提示是否继续,输入Y即可,以上步骤官方的解释就是# Add Docker’s official GPG key: 添加gpgkey,下一步

第三步:# Add the repository to Apt sources 说是把库添加进apt 资源

执行

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

第四步:安装docker

执行
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

image

第五步:检测是否安装成功

执行
sudo docker run hello-world

报错如下:

Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

经过阅读,修改 文件
执行
vim /etc/docker/daemon.json
编辑这个文件

打开后 加入

{
“registry-mirrors”: [
“https://mirror.ccs.tencentyun.com“
]
}

保存输入:wq 退出

image

提示我不能修改这个文件 那就是没权限,执行
:q!
不保存修改退出,优雅草央千澈懒得跟他墨迹,直接登录服务器手改

image

再次执行
sudo docker run hello-world

image

完美,成功,在ubuntu上面安装了 docker,本文结束,下文主要介绍使用docker安装一个开源项目(个人认为非常有用的项目),


http://www.ppmy.cn/devtools/146367.html

相关文章

STM32学习之EXTI外部中断(以对外式红外传感器 / 旋转编码器为例)

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序处理完成后又返回原来被暂停的位置继续运行 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急…

Kotlin协程基础

/*** 一个简单用例* * 此函数负责将一组文件上传到指定服务器中它使用协程来并行上传文件,* 并收集上传结果以统一响应* * param files 文件信息列表,包含待上传文件的相关信息* param Id ID,* return 返回一个Result对象,包含上传…

JS媒体查询之matchMedia API 实现跟随系统主题色切换效果

📊写在前面 在网页设计中,跟随系统主题切换可以通过CSS和JavaScript实现。可以通过定义两套CSS变量,根据系统主题的颜色来切换变量的生效,从而实现不同主题下的页面样式变化。 例如,可以使用媒体查询API来获取系统主题…

7、Lora微调论文笔记(低秩适应)

Lora微调论文笔记(低秩适应) 1、研究背景2、Lora微调2.1 Lora原理2.2 Lora和微调(全参)对比2.3Lora和适配器调整(Adapter tuning)对比2.4低秩更新的理解 3、数学(低秩分解)4、 将 LO…

【CSS in Depth 2 精译_099】17.5:基于页面滚动的动画时间线设置(全新)+ 17.6:最后一点建议 + 17.7:本章小结

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第五部分 添加动效 ✔️【第 17 章 动画】 ✔️ 17.1 关键帧17.2 3D 变换下的动画设置 17.2.1 添加动画前页面布局的构建17.2.2 为布局添加动画 17.3 动画延迟与填充模式17.4 通过动画传递意图 17.4…

RedisDesktopManager新版本不再支持SSH连接远程redis后

背景 RedisDesktopManager(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。这几天从新下载RedisDesktopManager最新版本,结果发现新版本开始不支持SSH连接远程redis了。 解决方案 第一种 根据网上有效的信息,可以回退版…

FPGA三模冗余TMR工具(二)

学术和商业领域有许多自动化的三模冗余TMR工具,本文介绍当前主流的基于寄存器传输级的三模冗余工具(Register-Transfer Level,RTL),基于重要软核资源的三模冗余工具,以及新兴的基于高层次综合的三模冗余工具…

Django 管理界面中注册和配置 ECSService 模型

在本文中,我们将详细讲解如何在 Django 的管理界面中注册和配置一个名为 ECSService 的模型。这个模型用于管理 Amazon ECS(Elastic Container Service)的服务和任务。我们将通过 Django 的 admin 模块来实现这一目标。 © ivwdcwso (ID: u012172506) 模型定义 首先,…