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

简介: Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈源、安装 Docker 包、验证安装- 适用场景:开发、测试、生产环境通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。

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 是什么

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

安装部署

https://docs.docker.com/desktop/setup/install/linux/

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

这里我们点击来到了详细说明,这里我们大意是要安装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 桌面环境.

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

第一步,更新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安装一个开源项目(个人认为非常有用的项目),

相关文章
|
22天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
177 77
|
3天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
69 35
|
9天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
60 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
14天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
40 3
实战~如何组织一个多容器项目docker-compose
|
6天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
9天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
35 4
|
30天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
24天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
78 3
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
93 7
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
37 5