Linux系统中快速安装docker

news2025/4/1 18:46:18

1 查看是否安装docker

要检查Ubuntu是否安装了Docker,可以使用以下几种方法:

方法1:使用 docker --version 命令

docker --version

如果Docker已安装,输出会显示Docker的版本信息,例如:

Docker version 20.10.10, build b485636

如果Docker未安装,你将看到类似以下的错误信息:

Command 'docker' not found, but can be installed with:
sudo apt install docker.io

方法2:使用 which docker 命令

which docker

如果Docker已安装,此命令会显示Docker可执行文件的路径,例如:

/usr/bin/docker

如果Docker未安装,命令不会产生输出。

方法3:检查Docker服务状态

systemctl status docker

如果Docker已安装且正在运行,你将看到服务的详细状态信息。如果Docker未安装或未运行,输出将类似于:

Unit docker.service could not be found.

方法4:检查已安装的包

你还可以检查系统中是否安装了Docker包。

检查 docker
dpkg -l | grep docker

检查 docker.io
dpkg -l | grep docker.io

如果Docker已安装,你会看到与Docker相关的包信息,例如:

ii  docker-ce       5:20.10.10~3-0~ubuntu-focal amd64        Docker: the open-source application container engine
ii  docker-ce-cli   5:20.10.10~3-0~ubuntu-focal amd64        Docker CLI: the open-source application container engine

安装Docker

如果你的系统中没有安装Docker,可以使用以下步骤安装Docker。

查询版本号

snap info docker

在这里插入图片描述

完整步骤如下:

使用 apt 包管理器可以直接安装指定版本的 docker.io 包。虽然这种方法更简单,但 docker.io 包可能不是官方的最新版本。以下是如何使用 apt 安装特定版本的 docker.io

1. 更新包信息

sudo apt update

2. 查找可用的 Docker 版本

使用 apt-cache 查看可用的 docker.io 版本:

apt-cache madison docker.io

这将列出所有可用的 docker.io 版本。例如:

 docker.io | 20.10.17-0ubuntu1~20.04.1 | http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
 docker.io | 20.10.12-0ubuntu2~20.04.1 | http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
 ...

在这里插入图片描述

3. 安装特定版本的 Docker

找到所需版本后,使用以下命令安装,例如20.10.17:

sudo apt install docker.io=20.10.21-0ubuntu1~18.04.3

4. 防止自动升级

为了防止 docker.io 包在系统升级时自动升级到新版本,可以将其保持在当前版本:

sudo apt-mark hold docker.io

5. 启动并启用 Docker 服务

sudo systemctl start docker
sudo systemctl enable docker
  • 启动服务start 命令会立即启动服务,但不会配置其在系统重启后自动启动。
  • 启用服务enable 命令会配置服务在系统启动时自动启动,但不会立即启动服务。

6. 验证安装

docker --version

docker官方网站寄了,换国内镜像网站,跟pip,conda一样

vi /etc/docker/daemon.json

{
“registry-mirrors”: [“https://ustc-edu.cn.mirror.aliyuncs.com/”,“https://ccr.ccs.tencentyun.com/”,“https://docker.m.daocloud.io/”]
}

systemctl daemon-reload
systemctl restart docker

容器重启策略

当Ubuntu虚拟机关机或重启后,原先运行在Docker中的容器会停止。如果你重新启动虚拟机并运行 docker ps 命令,你将看不到那些原先运行的容器,因为它们已经停止。

但是,这些容器并没有被删除,你可以通过 docker ps -a 命令查看所有(包括停止的)容器。

重新启动容器

如果你希望在系统重启后自动重新启动容器,可以为容器设置重启策略。Docker 提供了几种重启策略,你可以在运行容器时通过 --restart 选项来设置:

  • no:默认值。容器退出时不会自动重启。
  • on-failure:如果容器由于错误退出(非零退出状态),则自动重启。
  • always:无论退出状态如何,始终自动重启。
  • unless-stopped:始终自动重启,除非容器是手动停止的。

示例

使用 --restart 选项设置容器的重启策略:

docker run \
 -e RABBITMQ_DEFAULT_USER=itheima \
 -e RABBITMQ_DEFAULT_PASS=123321 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network hmall \
 --restart always \
 -d \
 rabbitmq:3.8-management

在上面的命令中,--restart always 参数确保容器在Docker守护进程启动时(例如系统重启后)自动重启。

启动和停止 Docker 容器

当系统重启后,使用以下命令来手动启动和停止容器:

  • 查看所有容器,包括已停止的

    docker ps -a
    
  • 启动一个已停止的容器

    docker start <container_name_or_id>
    
  • 停止一个运行中的容器

    docker stop <container_name_or_id>
    

进一步说明

使用重启策略可以确保容器在系统重启后自动恢复运行,提供了一种简单的方法来管理容器的高可用性,特别是对于需要持续运行的服务。

的容器**:

docker start <container_name_or_id>
  • 停止一个运行中的容器

    docker stop <container_name_or_id>
    

进一步说明

使用重启策略可以确保容器在系统重启后自动恢复运行,提供了一种简单的方法来管理容器的高可用性,特别是对于需要持续运行的服务。

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

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

相关文章

CP15 协处理器

ARMv7-A 一共支持 16 个协处理器&#xff0c;编号从 CP0~CP15。这里仅对CP15进行描述。 1、ARMv7-A 协处理器 ARMv7-A 处理器除了标准的 R0~R15&#xff0c;CPSR&#xff0c;SPSR 以外&#xff0c;由于引入了 MMU、TLB、Cache 等内容&#xff0c;ARMv7-A 使用协处理器来对这些…

网络运维学习笔记(DeepSeek优化版)026 OSPF vlink(Virtual Link,虚链路)配置详解

文章目录 OSPF vlink&#xff08;Virtual Link&#xff0c;虚链路)配置详解1. 虚链路核心特性2. 基础配置命令3. 状态验证命令3.1 查看虚链路状态3.2 验证LSDB更新 4. 关键技术要点4.1 路径选择机制4.2 虚链路的链路优化 5. 环路风险案例 OSPF vlink&#xff08;Virtual Link&a…

【区块链安全 | 第十六篇】类型之值类型(三)

文章目录 函数类型声明语法转换成员合约更新时的值稳定性示例 函数类型 函数类型是函数的类型。函数类型的变量可以通过函数进行赋值&#xff0c;函数类型的参数可以用来传递函数并返回函数。 函数类型有两种类型&#xff1a;内部函数和外部函数。 内部函数只能在当前合约内调…

Kubernetes对象基础操作

基础操作 文章目录 基础操作一、创建Kubernetes对象1.使用指令式命令创建Deployment2.使用指令式对象配置创建Deployment3.使用声明式对象配置创建Deployment 二、操作对象的标签1.为对象添加标签2.修改对象的标签3.删除对象标签4.操作具有指定标签的对象 三、操作名称空间四、…

Java与代码审计-Java基础语法

Java基础语法 package com.woniuxy.basic;public class HelloWorld {//入口函数public static void main(String[] args){System.out.println("Hello World");for(int i0;i< args.length;i){System.out.println(args[i]);}} }运行结果如下: 但是下面那个没有参数…

Xenium | 细胞邻域(Cellular Neighborhood)分析(fixed radius)

上节我们介绍了空间转录组数据分析中常见的细胞邻域分析&#xff0c;CN计算过程中定义是否为细胞邻居的方法有两种&#xff0c;一种是上节我们使用固定K最近邻方法(fixed k-nearest neighbors)定义细胞Neighborhood&#xff0c;今天我们介绍另外一种固定半径范围内(fixed radiu…

Python:爬虫概念与分类

网络请求&#xff1a; https://www.baidu.com url——统一资源定位符 请求过程&#xff1a; 客户端&#xff0c;指web浏览器向服务器发送请求 请求&#xff1a;请求网址(request url)&#xff1b;请求方法(request methods)&#xff1b;请求头(request header)&…

SQLMesh调度系统深度解析:内置调度与Airflow集成实践

本文系统解析SQLMesh的两种核心调度方案&#xff1a;内置调度器与Apache Airflow集成。通过对比两者的适用场景、架构设计和操作流程&#xff0c;为企业构建可靠的数据分析流水线提供技术参考。重点内容包括&#xff1a; 内置调度器的轻量级部署与性能优化策略Airflow集成的端到…

Multism TL494仿真异常

仿真模型如下&#xff1a;开关频率少了一半&#xff0c;而且带不动负载&#xff0c;有兄弟知道为什么吗 这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码…

HarmonyOS NEXT开发进阶(十五):日志打印 hilog 与 console.log 的区别

文章目录 一、前言二、两者区别对比三、HiLog 详解四、拓展阅读 一、前言 在日常开发阶段&#xff0c;日志打印是调试程序非常常用的操作&#xff0c;在鸿蒙的官方文档中介绍了hilog这种方式&#xff0c;前端转过来的开发者发现console.log也可以进行日志打印&#xff0c;而且…

vue 权限应用

目录 一、系统菜单栏权限 二、系统页面按钮权限 在企业开发中&#xff0c;不同的用户所扮演的角色不一样&#xff0c;角色拥有权限&#xff0c;所以用户拥有角色&#xff0c;就会有角色对应的权限。例如&#xff0c;张三是系统管理员角色&#xff0c;登录后就拥有整个系统的…

鸿蒙HarmonyOS NEXT设备升级应用数据迁移流程

数据迁移是什么 什么是数据迁移&#xff0c;对用户来讲就是本地数据的迁移&#xff0c;终端设备从HarmonyOS 3.1 Release API 9及之前版本&#xff08;单框架&#xff09;迁移到HarmonyOS NEXT&#xff08;双框架&#xff09;后保证本地数据不丢失。例如&#xff0c;我在某APP…

利用 PCI-Express 交换机实现面向未来的推理服务器

在数据中心系统的历史上&#xff0c;没有比被 Nvidia 选为其 AI 系统的组件供应商更高的赞誉了。 这就是为什么新兴的互连芯片制造商 Astera Labs 感到十分高兴&#xff0c;因为该公司正在 PCI-Express 交换机、PCI-Express 重定时器和 CXL 内存控制器方面与 Broadcom 和 Marv…

Python if else while for 学习笔记

一.if&#xff0c;else if语句用于根据条件执行代码块 else语句可与if语句结合&#xff0c;当if判断为假时执行else语句 x10 if x>5:print("x大于5") y3 if y>5:print("y大于5") else:print("y小于等于5")结果&#xff1a; 二.while循环…

正则化是什么?

正则化&#xff08;Regularization&#xff09;是机器学习中用于防止模型过拟合&#xff08;Overfitting&#xff09;的一种技术&#xff0c;通过在模型训练过程中引入额外的约束或惩罚项&#xff0c;降低模型的复杂度&#xff0c;从而提高其泛化能力&#xff08;即在未见数据上…

搜索-BFS

马上蓝桥杯了&#xff0c;最近刷了广搜&#xff0c;感觉挺有意思的&#xff0c;广搜题类型都差不多&#xff0c;模板也一样&#xff0c;大家写的时候可以直接套模板 这里给大家讲一个比较经典的广搜题-迷宫 题目问问能否走到 (n,m) 位置&#xff0c;假设最后一个点是我们的&…

《边缘计算风云录:FPGA与MCU的算力之争》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章&#xff1a;边城烽烟——数据洪流压境****第二章&#xff1a;寒铁剑匣——FPGA的千机变****第三章&#xff1a;枯木禅杖——MCU的至简道****第四章&#xff1a;双生契…

R-GCN-Modeling Relational Data with GraphConvolutional Networks(论文笔记)

CCF等级&#xff1a;B 发布时间&#xff1a;2018年6月 25年3月31日交 目录 一、简介 二、原理 1.整体 2.信息交换与更新 2.1基分解 2.2块对角矩阵 3.实体分类或链接预测 3.1实体分类 3.2链接预测 三、结论和未来工作 一、简介 RGCN通过允许不同关系类型之间的信息…

【C++初阶】----模板初阶

1.泛型函数 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 2.函数模板 2.1函数模板的概念 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型…

Pycharm(七):几个简单案例

一.剪刀石头布 需求&#xff1a;和电脑玩剪刀石头布游戏 考察点&#xff1a;1.随机数&#xff1b;2.判断语句 import random # numrandom.randint(1,3) # print(num) # print(**30) #1.录入玩家手势 playerint(input(请输入手势&#xff1a;&#xff08;1.剪刀 2.石头 3&…