在Ubuntu-22.04 [WSL2]中配置Docker
文章目录
- 0. 进入Ubuntu-22.04
- 1. 更新系统软件包
- 2. 安装Docker相关依赖包
- 3. 添加Docker官方GPG密钥
- 4. 添加Docker软件源
- 5. 安装Docker Engine
- 5.1 更新软件包列表
- 5.2 安装Docker相关软件包
- 6. 验证Docker安装是否成功
- 6.1 查看Docker版本信息
- 6.2 启动Docker
- 6.3 配置镜像加速器
- 6.4 运行一个简单的测试容器
- 6.6 Docker拉取MySQL镜像
- 7. 实战总结
0. 进入Ubuntu-22.04
- 在PowerShell里执行命令:
wsl -d Ubuntu-22.04
1. 更新系统软件包
- 在安装Docker之前,首先要确保系统的软件包列表是最新的
- 执行命令:
sudo apt -y update
- 执行命令:
sudo apt -y upgrade
- 说明:
sudo apt -y update
命令用于更新软件包列表信息,让系统知道可以安装的软件包的最新版本;sudo apt -y upgrade
命令用于将已安装的软件包升级到最新版本。-y
参数表示自动回答“是”,这样在更新和升级过程中就不会因为需要用户确认而中断。
2. 安装Docker相关依赖包
- 安装一些必要的软件包,这些软件包允许通过HTTPS来获取软件包,以及用于验证软件包的完整性的工具。
- 执行命令:
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
- 说明安装的软件包
apt-transport-https
:这个软件包允许apt
使用https
协议来下载软件包。通常情况下,默认的apt
仓库使用http
协议,但对于一些安全要求较高的软件(如Docker),其仓库使用https
协议,所以需要安装这个软件包来支持通过https
下载。ca-certificates
:包含了一系列的根证书,用于验证软件包来源的合法性。当通过https
下载软件时,系统需要使用这些证书来确认下载的软件是来自可信的源。curl
:是一个用于从服务器获取数据或者文件的工具。在这里主要用于从Docker官方网站下载安装脚本或者获取一些配置信息。software-properties-common
:提供了管理软件源(repository)的功能,比如添加或者删除软件源等操作。
3. 添加Docker官方GPG密钥
- 为了确保下载的Docker软件包是正版且没有被篡改,需要添加Docker官方的GPG密钥。
- 执行命令:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 命令说明
curl -fsSL https://download.docker.com/linux/ubuntu/gpg
:使用curl
工具从Docker官方指定的网址(https://download.docker.com/linux/ubuntu/gpg
)下载GPG密钥文件。-f
参数表示在下载过程中如果出现错误,curl
会直接返回错误信息而不是输出HTML文档。-s
参数表示静默模式,不显示下载进度。-L
参数表示如果下载的链接是一个重定向链接,curl
会自动跟踪重定向并下载最终指向的文件。sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
:使用gpg
工具对下载的密钥文件进行处理。--dearmor
参数表示将密钥文件转换为一种更适合存储和分发的格式。-o /usr/share/keyrings/docker - archive - keyring.gpg
指定了输出文件的路径和名称,即将转换后的密钥文件存储在/usr/share/keyrings
目录下,文件名为docker - archive - keyring.gpg
。
4. 添加Docker软件源
- 添加Docker软件源到系统的软件源列表中,这样系统就知道从哪里下载Docker软件包。
- 执行命令:
echo "deb [arch=$(dpkg --print-architecture) 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
- 命令说明
echo "deb [arch=$(dpkg --print - architecture) signed-by=/usr/share/keyrings/docker - archive - keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
:这个命令用于生成要添加到软件源列表中的内容。deb
:表示这是一个Debian
类型的软件源(Ubuntu是基于Debian的,所以使用deb
)。[arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
:指定了软件包的架构(通过dpkg --print-architecture
获取当前系统的架构,如amd64
或arm64
等)和用于验证软件包的GPG密钥文件路径。https://download.docker.com/linux/ubuntu
:是Docker软件包的下载地址。$(lsb_release -cs)
:获取当前Ubuntu系统的发行版代号(如jammy
),用于确定要下载哪个版本对应的软件包。stable
:表示要下载稳定版本的Docker软件包。
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
:tee
命令用于将前面echo
命令生成的内容写入到/etc/apt/sources.list.d/docker.list
文件中。> /dev/null
表示将tee
命令的标准输出重定向到/dev/null
(一个特殊的设备文件,用于丢弃数据),这样就不会在终端中显示多余的信息。
5. 安装Docker Engine
5.1 更新软件包列表
- 执行命令:
sudo apt -y update
- 再次执行
sudo apt -y update
是为了更新软件包列表,让系统能够识别刚刚添加的Docker软件源中的软件包。
5.2 安装Docker相关软件包
- 执行命令:
sudo apt -y install docker-ce docker-ce-cli containerd.io
- 软件包说明
docker - ce
:是Docker社区版(Community Edition)的核心软件包,包含了运行Docker容器所需的基本组件。docker - ce - cli
:提供了用于操作Docker容器的命令行接口。containerd.io
:是一个容器运行时(container runtime),它是Docker架构中的底层组件,负责管理容器的生命周期等操作。
6. 验证Docker安装是否成功
6.1 查看Docker版本信息
- 执行命令:
docker version
- 执行命令:
sudo update-alternatives --config iptables
,注意类型选择:1
- 执行命令:
docker version
6.2 启动Docker
- 执行命令:
sudo service docker start
6.3 配置镜像加速器
- 执行命令:
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://9871944d085e4817a11247169cc16509.mirror.swr.myhuaweicloud.com"]
}
6.4 运行一个简单的测试容器
- 执行命令:
docker run hello-world
- 这个命令会从Docker官方仓库中下载一个名为
hello-world
的测试容器并在本地运行。如果一切正常,终端会显示一些欢迎信息,表明Docker能够正常拉取和运行容器。
6.6 Docker拉取MySQL镜像
- 执行命令:
docker pull mysql:8.0
7. 实战总结
- 本次 Docker 安装实战从系统准备起步,先更新软件包与升级系统,接着安装关键依赖包以满足安全与协议需求,添加官方 GPG 密钥及软件源确保软件包正版可信与可获取。成功安装 Docker Engine 后,依次进行了安装验证,涵盖查看版本、启动服务、配置镜像加速器并运行测试容器。最后拉取 MySQL 8.0 镜像展示其应用场景。整体流程严谨有序,关键在于理解各步骤原理及作用,熟悉命令操作,为后续复杂的容器化应用部署筑牢根基,开启高效的 Docker 应用之旅。
相关文章:

在Ubuntu-22.04 [WSL2]中配置Docker
文章目录 0. 进入Ubuntu-22.041. 更新系统软件包2. 安装Docker相关依赖包3. 添加Docker官方GPG密钥4. 添加Docker软件源5. 安装Docker Engine5.1 更新软件包列表5.2 安装Docker相关软件包 6. 验证Docker安装是否成功6.1 查看Docker版本信息6.2 启动Docker6.3 配置镜像加速器6.4…...

ACM:均分纸牌
主要思路 整体思路概述: 本题旨在解决给定N堆纸牌(纸牌总数是N的倍数),通过按照特定移牌规则移动纸牌,找出用最少移动次数使每堆纸牌数量相等的方法。程序采用了一种逐步调整的思路,先计算出每堆纸牌应有的…...
ThreadFactory
ThreadFactory 是 Java 中一个用于创建线程的接口,它可以自定义线程的创建过程,例如线程的名称、优先级、是否为守护线程等。它是 java.util.concurrent 包的一部分,通常与线程池(ThreadPoolExecutor)一起使用。 线程…...

WEB开发: Node.js路由之由浅入深(一) - 全栈工程师入门
作为一个使用Node.js多年的开发者,我已经习惯于用Node.js写一些web应用来为工作服务,因为实现快速、部署简单、自定义强。今天我们一起来学习一个全栈工程师必备技能:web路由。(观看此文的前提是默认你已经装好nonde.js了…...

NES游戏机项目制作笔记(未完成)
24年12月1日晚记——在网上找项目学习的时候发现一个有意思的项目,准备靠这个应用一些STM32的高级功能。值得提醒的是——目的在于学习不可贪杯,注意效率 01 根据项目需求分析 为确保充分考虑每一个细节,并且让自己高效的完成项目制作&#…...

云服务器部署upload-labs-docker(文件上传靶场)环境 以及相关报错问题
环境的搭建 准备:云服务器(本地的linux服务器(版本最好不要是老的不然不兼容docker)) f8x配置docker环境: https://github.com/ffffffff0x/f8x 一键配置 docker拉取file-labs靶场 https://github.com…...

Elasticsearch入门之HTTP基础操作
RESTful REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在…...

maven聚合项目部署到tomcat上
目录 一.聚合项目 1.检查无误后将项目打包 2.将这四个拷贝到tomcat的webapp下 二.启动tomcat 1.双击startup.bat 2.页面访问http://localhost:8080 3.打开webapp文件夹,发现多了三个文件夹 4.点进去才有要访问的index页面 5.再进行访问 解决: …...

基于Matlab生育模型和年龄别死亡率的未来人口预测与结构动态分析
人口预测在社会经济发展、政策规划以及资源分配中扮演着至关重要的角色,特别是在全球人口老龄化、少子化趋势日益显著的背景下,对人口增长规律及结构变化的研究愈发重要。人口结构的变化不仅直接影响劳动力供给和经济增长潜力,还对医疗、教育…...
公共服务 kkFileView 4.1 文件预览 Docker 一键部署
官方文档 https://kkview.cn/zh-cn/docs/production.html 镜像导入 # 网络环境方便访问docker中央仓库 docker pull keking/kkfileview:4.1.0# 网络环境不方便访问docker中央仓库 wget https://kkview.cn/resource/kkFileView-4.1.0-docker.tar docker load -i kkFileView-4…...

福昕PDF低代码平台
福昕PDF低代码平台简介 福昕PDF 低代码平台是一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而无需编写复杂的代码。这使得即使没有编程经验的…...

Ubuntu环境安装RabbitMQ
1.安装Erlang RabbitMq需要Erlang语⾔的⽀持,在安装rabbitMq之前需要安装erlang # 更新软件包 sudo apt-get update # 安装 erlang sudo apt-get install erlang 查看erlang版本 : erl 退出命令:halt(). 2. 安装RabbitMQ # 更新软件包 sudo apt-get update # 安装 …...

集合ArrayList
黑马程序员Java的个人笔记 BV17F411T7Ao p111~p115 目录 集合存储数据类型的特点 创建对象 ArrayList 成员方法 .add 增加元素 .remove 删除元素 .set 修改元素 .get 查询元素 .size 获取长度 基本数据类型对应的包装类 Character 练习 返回多个数据 集合存储…...
C#怎么判断电脑是否联网
在 C# 中,可以通过几种方法检测计算机是否联网。以下是几种常用的方式: 1. 使用 System.Net.NetworkInformation.Ping 类 通过发送一个 Ping 请求到公共 DNS 服务器(如 Google 的 DNS 8.8.8.8)来检测是否联网。这是最常见的一种…...

软件体系结构复习-02 软件体系结构定位及构建
软件体系结构复习-02 软件体系结构定位及构建 原文链接:《软件体系结构复习-02 软件体系结构定位及构建》 目录 软件体系结构复习-02 软件体系结构定位及构建 1 什么是软件体系结构 2 软件生命周期中的软件体系结构 2.1 生命周期 2.2 定位与作用 1 规划和需求…...
鸿蒙获取 APP 信息及手机信息
前言:获取 APP 版本信息可以通过 bundleManager.getBundleInfoForSelfSync(bundleFlags) 去获取,获取手机信息可以通过 kit.BasicServicesKit 库去获取,以下是封装好的工具类。 import bundleManager from ohos.bundle.bundleManager; impo…...

Linux-V4L2摄像头应用编程
ALPHA/Mini I.MX6U 开发板配套支持多种不同的摄像头,包括正点原子的 ov5640(500W像素)、 ov2640(200W 像素)以及 ov7725(不带 FIFO、30W 像素)这三款摄像头,在开发板出厂系统上&…...

掌握谈判技巧,达成双赢协议
在当今竞争激烈且合作频繁的社会环境中,谈判成为了我们解决分歧、谋求共同发展的重要手段。无论是商业合作、职场交流,还是国际事务协商,掌握谈判技巧以达成双赢协议都具有极其关键的意义。它不仅能够让各方在利益分配上找到平衡点࿰…...

Mysql - 存储引擎
一 MYSQL体系结构简介 MYSQL的体系结构可以分为四个层级,从上往下依次为: 1. 连接层: 最上层为客户端以及一些连接服务,包含连接操作,例如JAVA想要与MYSQL建立连接就需要用到JDBC,PHP语言与Python也可以连接到MYSQL&am…...

借助 CC-Link IE FB 转 Profinet 网关实现西门子 PLC 接入三菱 PLC 系统的解决策略
我们公司自动化生产线上,原有的控制系统采用三菱 PLC 通过 CC-Link IEFB 网络进行通信和控制。后来随着企业生产规模的扩大和对自动化系统集成度要求的提高,需要将部分设备与新引入的西门子 PLC 控制系统相连接,而西门子 PLC 使用 ProfiNet 协…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...