Docker技术概论(2):Docker环境的搭建

news2024/11/18 5:59:08
Docker技术概论(2)
Docker环境的搭建

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/136359535
HuaWei:https://bbs.huaweicloud.com/blogs/422806

【介绍】:本文介绍Docker安装与配置。

在这里插入图片描述


上一节:《 Docker与虚拟化技术比较 | 下一节:《 Docker 中的基本概念


1. 概述

上一篇文章中,我们比较了两种不同的虚拟化技术——虚拟机 和 Docker。前者是基于硬件的虚拟化技术而后者则是基于系统的虚拟化技术。

Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以有效地利用系统资源。

Docker 的使用可以极大地简化应用的部署和管理过程,使得应用的分发、测试以及版本控制更加简单高效。随着云计算和微服务架构的普及,Docker 的重要性日益凸显,成为现代软件开发不可或缺的工具之一。

在开始正式使用Docker之前,我们需要现在一台电脑上安装Docker,安装Docker的首选是 Linux 环境,文本接下来将具体介绍Docker的安装过程。

2. 在Linux上安装Docker

本节以Ubuntu为例,介绍如何在Linux上安装Docker的。

2.1 当前版本Ubuntu系统上的安装

在最新的Ubuntu发行版上,可以直接使用apt工具安装Docker

sudo apt update
sudo apt install -y docker.io

安装完成后,你可以使用docker -v命令来检验是否安装成功

在这里插入图片描述

2.2 针对于比较旧的Ubuntu版本

对于某些较旧的Ubuntu版本或特定的发行版,Docker官方建议使用它们提供的存储库来安装,以确保获得最新的Docker版本和最新的安全更新。

这里介绍使用Docker官方存储库进行安装的步骤。

更新包列表

在安装Docker之前,首先要确保你的Ubuntu系统的软件包列表是最新的。使用以下命令更新:

sudo apt update
安装依赖包

Docker需要一些依赖包来正常运行。你可以使用以下命令安装这些依赖包:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
添加Docker官方GPG密钥

Docker官方提供了一个GPG密钥,用于验证其软件包的真实性。使用以下命令添加官方GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加Docker存储库

接下来,你需要将Docker存储库添加到Ubuntu系统中。这可以通过以下命令来完成:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker

现在,你已经添加了Docker存储库,可以使用以下命令来安装Docker

apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

以上命令将安装Docker引擎和相关组件。

启动并启用Docker服务

安装完成后,你需要启动并启用Docker服务,以便它在系统启动时自动启动。使用以下命令执行这些操作:

sudo systemctl start docker
sudo systemctl enable docker
验证Docker安装

最后,你可以运行以下命令来验证Docker是否成功安装,并查看Docker版本信息:

docker -v

你将看到Docker版本信息的输出,表示Docker已成功安装在你的Ubuntu系统上。

在这里插入图片描述

3. 在Windows上安装Docker

在系统上,以一种完全可视化的方式完成安装。和常见的 Windows 软件安装相似,需要先在官网上下载安装包。Docker的官方网站地址为:https://www.docker.com/。

在这里插入图片描述

在这里插入图片描述

等待下载完成:

在这里插入图片描述

找到下载好的文件,双击运行安装程序:

在这里插入图片描述

选择相应配置,等待安装完成:

在这里插入图片描述

安装结束后,点击 “Close adn restart” 按钮将会强制重启计算机(而不是程序),因此如果你又其它重要工作需要先完成保存:

在这里插入图片描述

计算机重启后,当你第一次启动 Docker for desktop 时,将进入设置向导页面:

在这里插入图片描述

这里直接选择“Use recommended settings”(使用推荐的设置)即可。点击“Finish”按钮以完成初始设置。等待程序初始化完成后即可使用了:

在这里插入图片描述

4. 不要在MacOS上学习Docker

这里我打算介绍在MacOS上安装Docker,因为它是最晚兼容的一个平台,且安装过程基于与之前介绍的 WIndows Docker Desktop一样。

虽然目前Docker Desktop已经拓展到了 MacOS平台,但是后续很多功能都不会在该系统上操作。对于切图工作者来说,苹果推出的Mac系列产品拥有比较好的屏幕。但是对于敲命令为主的Docker工程师来说,这种东西完全是多余。并且Docker之后还需要学习K8s,很多东西都不是Mac能够干的,从生产看,Mac既不好用、也无法用到底。如果像进一步学习,乘早丢弃切图机,避免浪费时间。

Docker是基于Linux容器技术的,这意味着它在Linux环境下运行得最为自然,因此最理想的环境是Linux,这于是诸多服务器的标准环境。在MacOS上,Docker需要通过虚拟化技术(如HyperKit)来模拟Linux环境,这一额外的抽象层可能会导致性能损失,尤其是在资源密集型的应用场景中。

MacOS用户在使用Docker时可能会遇到文件系统性能问题。由于Docker容器需要通过虚拟化层访问Mac的文件系统,这可能会导致文件访问速度较慢,尤其是在大型项目或需要频繁读写文件的应用中。虽然Docker团队和社区一直在努力优化这方面的性能,但这仍然是MacOS上使用Docker时需要考虑的一个因素。

Docker Desktop for Mac的安装和运行还需要占用相对较多的系统资源,包括CPU和内存。对于那些资源有限的Mac用户来说,这可能会影响到其他应用程序的运行效率。

当然以上仅仅是一些建议,也可以选择在后续学习中踩坑,然后自行上社区寻早解决办法,不过这很费时间,并且不会产生任何额外收益。

5. 结论

随着技术的不断进步和开发环境的日益复杂化,Docker 作为一种高效、便捷的容器化技术,已经成为了软件开发和运维领域的重要工具。通过在不同的操作系统上安装和配置 Docker,开发者可以轻松地构建、分发和运行任何应用,极大地提高了开发效率和应用的可移植性。

尽管在 MacOS 上使用 Docker 存在一定的性能和资源限制,但这并不妨碍 Docker 成为跨平台应用开发和部署的强大工具。对于希望在 Linux 环境下获得最佳性能和体验的用户,Linux 仍然是首选的操作系统。然而,对于那些习惯于 Windows 或 MacOS 环境的用户,Docker 也提供了便捷的解决方案,使他们能够在熟悉的环境中利用 Docker 的强大功能。

总之,无论是在 Linux、Windows 还是 MacOS 上,Docker 都为软件的开发、测试和部署提供了前所未有的便利和效率,是现代软件工程师工具箱中不可或缺的一部分。随着 Docker 社区的不断成长和技术的不断进步,我们有理由相信,Docker 将继续引领软件开发和运维的未来趋势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贪心算法(算法竞赛、蓝桥杯)--修理牛棚

1、B站视频链接&#xff1a;A27 贪心算法 P1209 [USACO1.3] 修理牛棚_哔哩哔哩_bilibili 题目链接&#xff1a;[USACO1.3] 修理牛棚 Barn Repair - 洛谷 #include <bits/stdc.h> using namespace std; const int N205; int m,s,c,ans; int a[N];//牛的位置标号 int d[N…

C/C++语言文字小游戏(荒岛求生)

游戏背景 玩家在荒岛上&#xff0c;需要寻找食物、水源、避难所等资源来生存。 玩家需要避免危险&#xff0c;如野兽、植物、天气等&#xff0c;否则会失去血量或生命。 玩家可以在荒岛上遇到其他生存者&#xff0c;可以选择合作或对抗。 游戏目标是生存一定时间或找到生存的出…

MySql-多表设计-多对多

目录 多对多 多对多 多对多的关系在开发中属于也比较常见的。比如&#xff1a;学生和老师的关系&#xff0c;一个学生可以有多个授课老师&#xff0c;一个授课老师也可以有多个学生。在比如&#xff1a;学生和课程的关系&#xff0c;一个学生可以选修多门课程&#xff0c;一个…

Linux——haproxy搭建Web群集

一、haproxy概述 HAProxy 提供高可用性、负载均衡以及基于TCP和HTTP的应用代理&#xff0c;支持虚拟主机&#xff0c;它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器&#xff0c;防止内部服务器遭受攻…

Dockerfile(5) - CMD 指令详解

CMD 指定容器默认执行的命令 # exec 形式&#xff0c;推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…

iSlide插件2024免费版(包含52 个PPT设计辅助功能,9 大在线资源库,以及超 50 万 专业)

一、功能介绍 iSlide是一款专为PowerPoint设计的插件&#xff0c;它集合了众多设计与效率提升的功能&#xff0c;帮助用户更快速、更美观地制作演示文稿。 主题设计&#xff1a;提供多种设计主题&#xff0c;用户只需一键应用&#xff0c;即可为幻灯片赋予统一的视觉风格。智…

php PhpSpreadsheet 读取日期变数字问题解决

问题描述&#xff1a; 使用PhpSpreadsheet 读取表格数据&#xff0c;日期格式读取后变成数字&#xff0c;如下图&#xff1a; 解决方案&#xff1a; $cell $sheet->getCell(H . $row)->getValue(); $toTimestamp \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimes…

学习大数据,所必需的java基础(6)

文章目录 集合Set集合介绍HashSet集合的介绍和使用LinkedHashSet的介绍以及使用哈希值哈希值的计算方式HashSet的存储去重的过程 Map集合Map的介绍HashMap的介绍以及使用HashMap的两种遍历方式方式1&#xff1a;获取key&#xff0c;然后再根据key获取value方式2&#xff1a;同时…

STL常见容器(set/multiset)---C++

STL常见容器目录&#xff1a; 7. set/multiset 容器7.1 set/multiset 基本概念7.2 set构造和赋值7.3 set大小和交换7.4 set插入和删除7.5 set查找和统计7.6 set和multiset区别7.6.1 pair对组创建7.6.2 set和multiset区别 7.7 set容器排序7.7.1 内置数据类型7.7.2 自定义数据类型…

React中对表格实现列表的拖拽排序

1. 效果:推拽手柄列 2. 实现: react中我们需要两个包来实现 ‘array-move’‘react-sortable-hoc’Installation Use npm $ npm install react-sortable-hoc --save 引入 import { arrayMoveImmutable } from array-move import { SortableContainer, SortableElement, Sort…

智能汽车软硬件产品CES展示汽车技术新亮点

智能汽车是汽车产业发展的新趋势&#xff0c;是未来汽车发展的必然方向。智能汽车是指搭载了先进的传感器、控制器、执行器等部件&#xff0c;并融合了人工智能、自动驾驶等技术&#xff0c;能够实现部分或完全自动驾驶、智能网联等功能的汽车。 近年来&#xff0c;智能汽车技…

CDN原理探究

来源于百度&#xff1a; https://baike.baidu.com/item/%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9C/4034265?frge_ala 通过上图&#xff0c;我们可以了解到&#xff0c;使用了CDN缓存后的网站的访问过程变为&#xff1a; 用户向浏览器提供要访问的域名&#xff…

基于springboot实现的健康监控管理系统

一、系统架构 前端&#xff1a;html | bootstrap | jquery | css 后端&#xff1a;springboot | thymeleaf | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据库 三、功能介绍 01. 体检测评 02. 运动处方 03. 运动处方明细 04. 运动处方-打卡…

css常用的选择器介绍

CSS&#xff08;层叠样式表&#xff09;选择器是CSS规则的一部分&#xff0c;它用于选择和定位网页上的元素&#xff0c;以便将样式应用到这些元素上。CSS选择器的种类繁多&#xff0c;每种选择器都有其特定的用途、特点和效率。在这篇文章中&#xff0c;我们将讨论一些常用的C…

oracle11安装及使用

安装oracle11 可访问我的资源 也可以网盘获取 链接&#xff1a;https://pan.baidu.com/s/1RDrGkqDA7tfKRnpJXUBMDw 提取码&#xff1a;z3na 上传安装包到服务器 在指定目录下创建文件夹installfile&#xff0c;我是在/newdisk/oracle/installfile&#xff0c;将安装文件…

数码管静态显示(一)

1.原理 计数0.5S&#xff0c;一个时钟周期20ns&#xff0c;因此要计数0.5s就是要从0计数到24999_999。 级联两个芯片可以实现16位得串并转换 MR是主复位端口&#xff0c;横线表示低电平有效。通常接到vcc&#xff0c;防止数据得清零。DS输入数据&#xff0c;SHCP输入时钟&#…

C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码

1 金矿问题&#xff08;Gold Mine Problem&#xff09; 给定一个N*M尺寸的金矿&#xff0c;每个点都有一个非负数表示当前点所含的黄金数目&#xff0c;最开始矿工位于第一列&#xff0c;但是可以位于任意行。矿工只能向右&#xff0c;右上&#xff0c;右下三个方向移动。问该…

CTFHub技能树web之XSS

在XSS系列的题目中&#xff0c;由于需要使用能够接受XSS数据的平台&#xff0c;并且由于使用的是CTFHub的模拟机器人点击我们的虚假URL&#xff0c;因此使用的XSS平台不能是自己本地搭建的&#xff0c;如果是本地的模拟点击的机器人将无法访问我们给的这个URL地址&#xff0c;也…

【前端素材】推荐优质在线通用果蔬商城电商网页eStore平台模板(附源码)

一、需求分析 1、系统定义 通用果蔬网站是指专门提供各类果蔬产品展示和销售的在线平台。它将不同种类的新鲜水果、蔬菜、干果、坚果等聚集在一起&#xff0c;为消费者提供方便、快捷的购物渠道。 2、功能需求 通用果蔬网站是指专门提供各类果蔬产品展示和销售的在线平台。…

u盘文件损坏怎么恢复数据?分享3个U盘数据恢复方法

在现代生活中&#xff0c;U盘作为一种便携式存储设备&#xff0c;已经广泛地应用于工作和生活的各个方面。然而&#xff0c;无论是由于硬件故障、病毒感染还是不当操作&#xff0c;U盘中的数据都有可能遭受损坏或丢失。面对这种情况&#xff0c;如何有效地恢复U盘中的文件成为了…