docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
docker介绍
首先我们要知道docker的官网
https://www.docker.com/
这是docker官网,是不是觉得有点似曾相识,看起来和git 对应的代码托管平台 GitHub gitee 很类似,但是他们是有区别的。
- docker基于容器技术,利用 Linux 内核的命名空间(Namespaces)和控制组(cgroups)等功能来创建独立的运行环境。容器共享主机操作系统的内核,当启动一个 Docker 容器时,Docker 引擎会根据容器所基于的镜像来创建一个隔离的文件系统、进程空间、网络接口等。例如,在一台服务器上可以同时运行多个基于不同操作系统(如 Ubuntu、CentOS 等)的容器,这些容器相互独立,就像运行在不同的服务器上一样,但实际上它们共享主机的内核资源。
而gitee和Github基于版本控制系统(如 Git)构建。它通过存储库(Repository)来管理代码。
扩展知识:
一、Docker 是什么
- 定义
- Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包成一个称为容器的标准化单元。容器是轻量级、可移植的执行环境,在任何支持 Docker 的操作系统上都能以相同的方式运行。
- 简单类比,就像是把应用程序和它运行所需要的所有东西(如库、配置文件等)都装在一个 “盒子”(容器)里,这个 “盒子” 可以很方便地在不同的地方(不同的服务器、开发环境、测试环境等)移动和运行,而且里面的东西(应用程序的运行环境)不会受到外部环境的干扰。
- 核心概念
- 镜像(Image):镜像是一个只读的模板,包含了运行容器所需的文件系统和配置。例如,一个基于 Ubuntu 操作系统的 Web 服务器应用镜像,会包含 Ubuntu 操作系统的文件系统,以及安装好的 Web 服务器软件(如 Nginx)及其配置文件。可以把镜像看作是容器的 “蓝图”。
- 容器(Container):容器是从镜像创建的运行实例。它是一个独立的运行环境,有自己的进程空间、网络接口和文件系统。以刚才的 Web 服务器为例,根据 Web 服务器镜像创建的容器,就是实际运行 Web 服务器应用的地方。容器可以被启动、停止、删除等操作。
- 仓库(Repository):仓库是用于存储和分发镜像的地方,类似于代码仓库。Docker Hub 是最常用的公共仓库,上面有大量官方和社区维护的镜像。开发者可以将自己创建的镜像推送到仓库中,也可以从仓库中拉取别人创建的镜像来使用。
- 优势
- 一致性环境:确保应用在不同的环境(开发、测试、生产)中以相同的方式运行,减少了因环境差异导致的 “在我机器上可以运行” 的问题。
- 轻量级和高效:相比于传统的虚拟机,容器更加轻量级。因为容器共享主机操作系统的内核,不需要像虚拟机那样运行完整的操作系统,从而节省了大量的系统资源,启动速度也更快。
- 易于部署和扩展:可以通过简单的命令快速部署容器,并且可以很容易地根据应用的负载情况进行扩展,比如启动多个相同的容器来处理更多的请求。
安装部署
https://docs.docker.com/desktop/setup/install/linux/
这里是 docker的下载地址,优雅草目前采用的系统均为Linux Ubuntu ,因此本文优雅草央千澈也就以Ubuntu为示范
这里我们点击来到了详细说明,这里我们大意是要安装docker 桌面
第一步:gnome-terminal安装
docker这里提示对于非Gnome桌面环境,gnome-terminal必须安装。
扩展知识:
在 Ubuntu 系统中,非 Gnome 桌面环境是指除了 Gnome 之外的其他桌面环境。
一、常见的非 Gnome 桌面环境
- KDE Plasma
- 特点:
- 高度可定制性。它提供了丰富的桌面小部件,用户可以根据自己的喜好对桌面进行个性化设置,比如可以在桌面上添加天气小部件、系统资源监视器小部件等。
- 具有美观的视觉效果。KDE Plasma 的主题和图标设计精美,并且支持多种主题切换,能给用户带来舒适的视觉体验。
- 功能强大的文件管理器。Dolphin 是 KDE Plasma 的默认文件管理器,它支持强大的文件搜索功能、标签式浏览以及网络共享功能等。
- 适用场景:适合那些追求高度定制化、需要强大的文件管理功能和美观界面的用户,特别是对设计、多媒体等工作有需求的用户。例如,平面设计师可以利用其定制功能将桌面设置成符合自己工作流程的样式,方便快速访问设计工具和素材。
- XFCE
- 特点:
- 资源占用少。相比 Gnome 和 KDE Plasma,XFCE 对系统资源的要求较低,在老旧设备或者资源有限的计算机上也能流畅运行。
- 简单易用。它的界面简洁,操作逻辑清晰,对于初学者或者只是需要一个基本桌面环境来完成日常任务(如浏览网页、处理文档)的用户来说非常友好。
- 稳定性高。XFCE 经过长期的发展,其稳定性得到了很好的验证,很少出现崩溃等问题。
- 适用场景:适用于低配置设备,如老旧的笔记本电脑或者服务器的桌面管理。也适合那些不需要复杂功能,只希望有一个稳定、简单桌面环境的用户。
- LXQt/LXDE
- 特点:
- 轻量级。这是其最显著的特点,它的设计目标是在资源有限的系统上提供基本的桌面功能。它的内存占用非常小,能够在低性能的硬件上快速启动和运行。
- 快速高效。启动速度快,应用程序的响应时间也较短,为用户提供了高效的操作体验。
- 简洁的界面。界面设计简洁明了,没有过多的装饰,专注于提供基本的桌面组件和功能。
- 适用场景:主要用于嵌入式系统、小型设备(如树莓派)或者对性能要求极高的低配置计算机,如一些用于网络监控或简单数据采集的设备。
二、与 Gnome 桌面环境的对比
- 设计理念
- Gnome 桌面环境注重简洁和易用性,采用了现代的设计风格,以简洁的界面和直观的操作方式为主要特点。例如,Gnome 的活动概览功能可以让用户方便地在多个工作区和应用程序之间切换。
- 非 Gnome 桌面环境各有其设计重点。如 KDE Plasma 注重定制和功能丰富性,用户可以对桌面的每一个细节进行定制;XFCE 更偏向于简单和资源效率,提供基本的桌面功能而没有过多的复杂设计。
- 资源占用
- Gnome 桌面环境在资源占用方面相对较高,特别是在较旧的硬件设备上可能会出现性能下降的情况。
- 非 Gnome 桌面环境如 XFCE 和 LXQt/LXDE 则在资源占用上有优势,能够在较低配置的设备上良好运行。
- 功能和定制程度
- Gnome 提供了一套相对固定的功能和操作方式,虽然也有一定的扩展性,但定制程度相对有限。
- 非 Gnome 桌面环境的功能和定制程度差异较大。KDE Plasma 的定制功能非常强大,用户可以改变桌面的几乎所有方面;XFCE 的定制程度适中,提供了基本的定制选项来满足用户的日常需求;LXQt/LXDE 则主要提供基本的桌面功能定制。
如何来检测一下我们的服务器是否是非Gnome桌面环境,
在终端中输入 echo $XDG_CURRENT_DESKTOP ,如果输出不是 ubuntu:GNOME ,则不是 Gnome 桌面环境。例如输出为 ubuntu:XFCE ,就表明使用的是 XFCE 桌面环境.
这个就是官网整体的安装描述,我们直接执行安装:
第一步,更新apt库
执行
sudo apt-get update
我们可以看到显示了腾讯云的镜像,如果你们是阿里云应该会显示阿里。
第二步,执行安装
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
中途会提示是否继续,输入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
第五步:检测是否安装成功
执行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 退出
提示我不能修改这个文件 那就是没权限,执行
:q!
不保存修改退出,优雅草央千澈懒得跟他墨迹,直接登录服务器手改
再次执行sudo docker run hello-world
完美,成功,在ubuntu上面安装了 docker,本文结束,下文主要介绍使用docker安装一个开源项目(个人认为非常有用的项目),