【Docker】在 Ubuntu 上安装 Docker 的详细指南

目录

  • 一、准备工作
  • 二、检查系统版本
  • 三、安装 Docker
    • 1. 安装必要的依赖
    • 2. 添加 Docker 的官方 GPG 密钥
    • 3. 添加 Docker 的 APT 源
    • 4. 更新 APT 包索引
    • 5. 安装 Docker CE
    • 6. 验证 Docker 是否安装成功
  • 四、启动与测试 Docker
    • 1. 启动 Docker 服务
    • 2. 运行 Hello World 容器
  • 五、设置 Docker 自动启动
    • 1. 启用 Docker 服务
    • 2. 检查服务状态
    • 3. 启动 Docker 服务(如未运行)
    • 4. 验证 Docker 是否正常运行
  • 六、添加 Docker 用户组(可选)
  • 七、常用 Docker 命令
  • 八、卸载 Docker
  • 总结

Docker 是一个开源的平台,可以让开发者打包应用及其依赖项为一个可移植的容器。本文将详细介绍如何在 Ubuntu 上安装 Docker,包括安装步骤、常见命令以及一些注意事项。

一、准备工作

在开始之前,请确保您的系统是最新的,并且已经安装了支持的 Ubuntu 版本(例如 Ubuntu 20.04 或 22.04)。可以使用以下命令来更新系统:

sudo apt update
sudo apt upgrade -y

二、检查系统版本

为了确认您的 Ubuntu 版本,您可以运行以下命令:

lsb_release -a

三、安装 Docker

1. 安装必要的依赖

在安装 Docker 之前,我们需要安装一些必要的依赖包。运行以下命令:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

2. 添加 Docker 的官方 GPG 密钥

通过以下命令添加 Docker 的官方 GPG 密钥,以确保下载的软件包的完整性:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3. 添加 Docker 的 APT 源

接下来,我们需要添加 Docker 的 APT 源到您的系统中:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

4. 更新 APT 包索引

添加源后,更新 APT 包索引:

sudo apt update

5. 安装 Docker CE

现在可以安装 Docker 社区版(Docker CE):

sudo apt install docker-ce

6. 验证 Docker 是否安装成功

安装完成后,您可以运行以下命令来验证 Docker 是否成功安装:

sudo systemctl status docker

如果 Docker 正在运行,您将看到类似以下的输出:

● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running)

四、启动与测试 Docker

1. 启动 Docker 服务

如果 Docker 服务没有自动启动,可以手动启动它:

sudo systemctl start docker

2. 运行 Hello World 容器

您可以使用以下命令来测试 Docker 是否工作正常:

sudo docker run hello-world

如果一切正常,您应该会看到一条欢迎消息。

五、设置 Docker 自动启动

1. 启用 Docker 服务

您可以使用以下命令启用 Docker 服务,使其在系统启动时自动启动:

sudo systemctl enable docker

运行此命令后,Docker 服务将在每次系统重启时自动启动。

2. 检查服务状态

要确认 Docker 服务已设置为自动启动,可以运行以下命令:

sudo systemctl is-enabled docker

如果输出为 enabled,则表示 Docker 服务已成功配置为在启动时自动运行。

3. 启动 Docker 服务(如未运行)

如果 Docker 服务当前未运行,可以手动启动它:

sudo systemctl start docker

4. 验证 Docker 是否正常运行

您可以再次检查 Docker 的状态,确保其正在运行:

sudo systemctl status docker

六、添加 Docker 用户组(可选)

如果您希望普通用户也能运行 Docker 命令,而无需每次都使用 sudo,可以将该用户添加到 docker 用户组:

sudo usermod -aG docker $USER

添加后,需要注销并重新登录,或者重启系统,以便更改生效。

七、常用 Docker 命令

以下是一些常用的 Docker 命令,表格形式展示:

命令描述
sudo docker ps列出当前运行的容器
sudo docker images列出本地存储的所有镜像
sudo docker run [image]使用指定镜像创建并运行一个新容器
sudo docker stop [container]停止运行中的容器
sudo docker rm [container]删除一个容器
sudo docker rmi [image]删除一个镜像
sudo docker exec -it [container] /bin/bash进入运行中的容器并打开 bash shell

八、卸载 Docker

如果您想完全卸载 Docker,可以使用以下命令:

sudo apt remove docker-ce
sudo apt purge docker-ce
sudo rm -rf /var/lib/docker

在 Ubuntu 上安装 Docker 后,您可以设置 Docker 服务在系统启动时自动启动,并将其添加到系统守护进程中。以下是如何实现这一点的步骤。

总结

通过以上步骤,您已成功在 Ubuntu 上安装 Docker,并能够验证其安装情况。并且设置 Docker 在系统启动时自动启动,并且可以选择将自己添加到 Docker 用户组中以简化命令使用。Docker 的强大功能可以帮助您更高效地管理和部署应用。希望这篇指南对您有所帮助,祝您使用愉快!


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机编程中的测试驱动开发(TDD)及其在提高代码质量中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机编程中的测试驱动开发(TDD)及其在提高代码质量中的应用 计算机编程中的测试驱动开发(T…

【MYSQL】锁详解(全局锁、表级锁、行级锁)【快速理解】

目录 一、全局锁 二、表级锁 1.表锁 2.元数据锁 3.意向锁 三、行级锁 1. 行锁 2.间隙锁 3.临建锁 锁是处理并发情况下,对数据的一致性的关键因素,也是并发情况下对效率影响非常大的。 1、全局锁:锁定表中所有数据。 2、表级锁:…

thinkphp6 入门(2)--视图、渲染html页面、赋值

use think\facade\View;View::assign([name > ThinkPHP,email > thinkphpqq.com]);View::assign(data,[name > ThinkPHP,email > thinkphpqq.com]); View::fetch(index);助手函数 view(index, [name > ThinkPHP,email > thinkphpqq.com ]); 模板输出 {$na…

百度智能云 VectorDB 优势数量 TOP 1

近日,IDC 发布了《RAG 与向量数据库市场前景预测》报告,深入剖析了检索增强生成(RAG)技术和向量数据库市场的发展趋势。报告不仅绘制了 RAG 技术的发展蓝图,还评估了市场上的主要厂商。在这一评估中,百度智…

MySQL索引的底层实现原理是什么?

MySQL索引的底层实现主要基于B树数据结构。B树是一种平衡多路查找树,具有以下特点: 1、树的所有叶子节点都位于同一层: 这确保了从根节点到每个叶子节点的路径长度相同,保证了查询效率的一致性。 2、节点中的数据按键值大小有序…

手搓神经网络(MLP)解决MNIST手写数字识别问题 | 数学推导+代码实现 | 仅用numpy,tensor和torch基本计算 | 含正反向传播数学推导

手写数字识别(神经网络入门) 文章目录 手写数字识别(神经网络入门)实验概述实验过程数据准备模型实现线性变换层前向传播反向传播更新参数整体实现 激活函数层(ReLU)前向传播反向传播整体实现 Softmax层&am…

在MATLAB中导入TXT文件的若干方法

这是一篇关于如何在MATLAB中导入TXT文件的文章,包括示例代码和详细说明 文章目录 在MATLAB中导入TXT文件1. 使用readtable函数导入TXT文件示例代码说明 2. 使用load函数导入TXT文件示例代码说明 3. 使用importdata函数导入TXT文件示例代码说明 4. 自定义导入选项示例…

ks 小程序sig3

前言 搞了app版的快手之后 (被风控麻了) 于是试下vx小程序版的 抓包调试 小程序抓包问题 网上很多教程, github也有开源的工具代码 自行搜索 因为我们需要调试代码,所以就用了下开源的工具 (可以用chrome的F12功能&a…

解决Spring Boot整合Redis时的连接问题

前言 在使用Spring Boot整合Redis的过程中,经常会遇到连接问题,尤其是当Redis服务部署在远程服务器上时。 问题描述 当你尝试连接到Redis服务器时,可能会遇到以下错误: org.springframework.data.redis.connection.PoolExcept…

算法--“汽车加油”问题.

def greedy():n 100 # 汽车满油后可行驶的最大距离d [50, 80, 39, 60, 40, 32] # 加油站的距离k len(d) # 加油站的数量# 检查是否有加油站距离超过汽车的最大行驶距离for dist in d:if dist > n:print(no solution)returnnum 0 # 加油次数current_position 0 # 当…

道陟科技EMB产品开发进展与标准设计的建议|2024电动汽车智能底盘大会

11月12日,2024电动汽车智能底盘大会在重庆开幕。会议由中国汽车工程学会主办,电动汽车产业技术创新战略联盟、中国汽车工程学会智能底盘分会、智能绿色车辆与交通全国重点实验室承办。本届大会围绕电动汽车智能底盘相关技术发展与融合,满足高…

sqli—labs靶场 5-8关 (每日4关练习)持续更新!!!

Less-5 上来先进行查看是否有注入点,判断闭合方式,查询数据列数,用union联合注入查看回显位,发现到这一步的时候,和前四道题不太一样了,竟然没有回显位??? 我们看一下源…

【qt】控件3

1.setToolTip和setToolTipDuration setToolTip这个函数用来设置提醒内容 setToolTipDuration这个函数用来设置提醒时间 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->help->setToolTip("按下这个按键就可以提…

STM32 使用 STM32CubeMX HAL库实现低功耗模式

STM32 使用 HAL 库的低功耗模式测试使用 ...... 矜辰所致前言 上次画了一个 STM32L010F4 最小系统的板子,也做了一些基本测试,但是最重要的低功耗一直拖到现在,以前在使用 STM32L151 的时候用标准库做过低功耗的项目,现在都使…

js实现导航栏鼠标移入时,下划线跟随鼠标滑动

话不多说&#xff0c;上代码&#xff1a; html代码&#xff1a; <div class"nav clearfix"><div class"bottomLine"></div><ul class"clearfix"><li class"nav__item"><a href"./index.html&…

React教程第二节之虚拟DOM与Diffing算法理解

1、什么是虚拟DOM 虚拟DOM 是javascript的一个对象&#xff0c;是内存中的一种数据结构&#xff0c;以树的形式存储UI的状态&#xff0c;树中的每个节点都代表着真实的DOM&#xff0c;用来描述我们希望在页面看到的 HTML结构&#xff1b; 现在的MVVM 框架&#xff0c;大多使用…

多线程4:线程池、并发、并行、综合案例-抢红包游戏

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

【WPF】Prism库学习(一)

Prism介绍 1. Prism框架概述&#xff1a; Prism是一个用于构建松耦合、可维护和可测试的XAML应用程序的框架。它支持WPF、.NET MAUI、Uno Platform和Xamarin Forms等多个平台。对于每个平台&#xff0c;Prism都有单独的发布版本&#xff0c;并且它们在不同的时间线上独立开发。…

通过华为鲲鹏认证发行上市的集成平台产品推荐

华为鲲鹏认证是技术实力与品质的权威象征&#xff0c;代表着产品达到了高标准的要求。从技术层面看&#xff0c;认证确保产品与华为鲲鹏架构深度融合&#xff0c;能充分释放鲲鹏芯片的高性能、低功耗优势&#xff0c;为集成平台的高效运行提供强大动力。在安全方面&#xff0c;…

STM32 ADC --- 任意单通道采样

STM32 ADC — 单通道采样 文章目录 STM32 ADC --- 单通道采样cubeMX配置代码修改&#xff1a;应用 使用cubeMX生成HAL工程 需求&#xff1a;有多个通道需要进行ADC采样&#xff0c;实现每次采样只采样一个通道&#xff0c;且可以随时采样不同通道的功能。 cubeMX配置 这里我们…