Docker: ubuntu系统下Docker的安装

安装依赖

操作系统版本

  • Ubuntu Kinetic 22.10
  • Ubuntu Jammy 24.04 (LTS)
  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

CPU架构支持

  • ARM
  • x86_64

查看我们的系统版本信息

uname -a

在这里插入图片描述
通过该命令查得cpu架构是x86_64的;

cat /etc/*release*

在这里插入图片描述
查看得到版本信息是20.04的;

如果版本号跟不上的话,是不支持最新的Docker的;

卸载旧版本或历史版本的Docker

如果系统镜像是新搭建的,是没有包含docker的,可以跳过这一步;
我们也可以通过 输入docker来验证你是否有安装:
有安装的话:
在这里插入图片描述

卸载旧版本:

sudo apt-get remove docker docker-engine docker.io containerd runc

卸载历史版本:

#卸载软件
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
#删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

配置docker下载源

#curl 命令安装sudo apt install curl -y
#安装必要的包  添加Docker的官方GPG密钥
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://mirrors.aliyun.codocker-ce/linux/ubuntu/gpg | sudo apt-key add -

GPG密钥是一种用于数据加密、数字签名和安全通信的工具。在安装软件包时,GPG密钥可以确保用户下载的软件包是来自官方或可信任的源,且没有在传输过程中被篡改或损坏。
用户需要从Docker的官方网站或其他可信任的源下载GPG密钥,下载完成后,用户需要将GPG密钥导入到系统的GPG密钥环中。

常见错误

curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to download.docker.com:443 gpg: no valid OpenPGP data found.

这个错误通常意味着在尝试通过 HTTPS 连接到 download.docker.com 时,连接被远程服务器重置。这可能是由于网络问题、DNS 解析问题或服务器端的配置错误导致的。

我们可以先ping 一下该网站是否能够连接上:

ping download.docker.com

可以的话,有时服务器可能暂时不可用或正在维护。等待一段时间后重试可能会解决问题。多输入几遍到不报错为止。

安装docker

由于下载官方安装包的时候下载过慢,所以这里通过阿里云的下载源来进行下载。

#添加阿里云镜像的Docker APT源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#更新APT包索引
sudo apt update
#安装Docker CE(Community Edition)
sudo apt install docker-ce docker-ce-cli containerd.io -y

常见错误(没有公钥)

apt update时

W: GPG error: https://download.docker.com/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://download.docker.com/linux/ubuntu focal InRelease' is not signed.

这是由于没有公钥,无法验证下列签名,
解决方法:可以通过以下命令来添加缺失的公钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

将会从Ubuntu的公钥服务器上获取缺失的公钥并将其添加到你的系统中。然后,重新运行apt update命令来更新软件包列表。

常见错误(没有 Release 文件)

第一种方法

apt update时

The repository 'https://download.docker.com/linux/ubuntu focal Release' does not have a Release file.

这通常意味着您尝试访问的 Docker 仓库分支或版本不存在或已更改。

解决方法:更新Ca-certificates
Ca-certificates官网

找到对应版本,进入详情
在这里插入图片描述
滑到下面找到Download,复制链接
在这里插入图片描述

wget http://ports.ubuntu.com/pool/main/c/ca-certificates/ca-certificates_20240203~20.04.1_all.deb
sudo dpkg -i ca-certificates_20240203~20.04.1_all.deb

输入命令进行下载解压

sudo apt update

再次更新

第二种方法

更新source源:网站:国内source源
在这里插入图片描述
找到对应版本选择下载,之后输入命令:对你的sources.list源进行拷贝更新

sudo cp sources.list /etc/apt

再次尝试

sudo apt update

自动启动配置

#配置加载
sudo systemctl daemon-reload 
#启动服务
sudo systemctl start docker 
#开启启动
sudo systemctl enable docker
# 查看服务状态
sudo systemctl status docker

在这里插入图片描述

这是是绿色的表明服务是正常运行的;

查看docker版本

docker version

在这里插入图片描述

查看更详细信息

docker info

对docker镜像源的更改

默认情况下,Docker使用的是官方的镜像源,如Docker Hub。然而,由于网络条件地理位置官方镜像源本身的限制下载速度可能会较慢,导致在构建容器时等待时间过长。
为了提高下载速度,许多用户会选择将镜像源更改为国内的镜像源,如阿里云、DaoCloud等提供的加速器。这些加速器通常位于国内,能够更快地响应用户的下载请求,从而显著提高下载速度。

vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://mirror.ccs.tencentyun.com","https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"],"data-root": "/data/var/lib/docker"
}

重新启动

sudo systemctl restart docker

Docker目录的更改

Docker 默认的安装目录为/var/lib/docker,这里面会存放很多很多镜像,所以我们在安装的时候需要考虑这个目录的空间,为了增大空间的上限,我们给它换一个大的磁盘。

#假定我们磁盘的大的目录为 /data
mkdir -p /data/var/lib/docker 
# 编辑配置文件
vi /etc/docker/daemon.json
# 输入下面的 json
{
"data-root": "/data/var/lib/docker"
}
# 加载配置
sudo systemctl daemon-reload 
# 重启 docker
sudo systemctl restart docker 
#查看 docker 状态
sudo systemctl status docker

通过命令docker info查得
在这里插入图片描述

发现该目录下已经加载了配置了。
在这里插入图片描述

尝试运行

docker run hello-world

在这里插入图片描述
只要出现了红框内容,那么就是安装成功的。


参考来源:E:The repository ‘https://mirrors.aliyun.com/docker-ce/linux/ubuntu una Release‘ does not have a Rel
解决E: 仓库 “https://download.docker.com/linux/ubuntu focal Release” 不再含有 Release 文件

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

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

相关文章

【已解决】 Tomcat10.1.x使用JSTL标签库

IDEA创建Java EE项目,使用Spring Spring MVC MyBatis框架,使用maven管理依赖。项目当前的环境是: Tomat 10.1.28Maven 3.6.3JDK 17 项目的功能:读取数据库的report表中的数据,返回一个List集合对象reportList在JSP…

LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…

数据分析24.11.13

Excel 函数 求和 函数 sum() sumif() SUMIF(range, criteria, [sum_range]) sumifs() average() count() max() min() 逻辑 函数 if() iferror() 查询函数 VLOOKUP()

DveOps-Git-版本控制

1. 概述 分布式版本控制系统 版本控制 2. Git极速上手指南 官方传送门:Git - Branching and Merging 2.1 安装 ## windows https: git-scm.com/download/## Linux(CentOS/Fedora/Rocky Linux/RHEL) yum install -y git ## MacOS brew install git## Ubuntu/Debian apt in…

DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能

DevOps的兴起,得益于敏捷软件开发的普及与IT基础设施代码化管理的革新。敏捷宣言虽已解决了研发流程中的诸多挑战,但代码开发仅是漫长价值链的一环,开发前后的诸多问题仍亟待解决。与此同时,虚拟化和云计算技术的飞跃,…

Tensorflow基本概念

简介:本文从Graph讲到Session,同时讲解了tf.constant创建tensor的用法和variable需要初始化的知识点,可以给你打好一个学习Tensorflow的基础。本文都是基于TensorFlow1.14.0的版本下运行。 本专栏将会系统的讲解TensorFlow在1.14.0版本下的各…

【React】响应事件

1.添加事件处理函数 按照如下三个步骤&#xff0c;即可让它在用户点击时显示消息&#xff1a; 在 Button 组件 内部 声明一个名为 handleClick 的函数。实现函数内部的逻辑&#xff08;使用 alert 来显示消息&#xff09;。添加 onClick{handleClick} 到 <button> JSX …

初遇Python-----python/anaconda/PyCharm安装应用问题

作为一名医学生,小编之前从未用过python,一直将R视为数据分析的利器,至于到底R好用还是Python好用,一直是广大网友们争论的热点,小编资历尚浅,对此就不予评价了。最近需要对部分数据进行建模工作,奈何三方工具完全基于python语言编写的,迫不得已小编也只能挠头学习了。本…

基于reads的宏基因组与宏转录组医学分析流程正式上线!

随着生物医学领域的快速发展&#xff0c;宏基因组学和宏转录组学正逐渐成为研究微生物群落及其在人体健康与疾病中作用的关键技术。然而&#xff0c;医学研究样品往往存在微生物含量较低的情况&#xff0c;这给数据分析带来了挑战。为了解决这一难题&#xff0c;并适应不断增长…

使用Aria2实现离线下载

最近有需要BT下载&#xff0c;但有的资源很冷门&#xff0c;速度很慢&#xff0c;总不能一直开着电脑下载&#xff0c;于是想到部署个离线下载。想起之前用雨云服务器拿来部署兰空图床感觉效果不错&#xff0c;发现内存剩的还挺多&#xff0c;所以继续压榨一下&#x1f60f; 提…

第三百二十三节 Java线程教程 - Java同步器

Java线程教程 - Java同步器 同步器对象与一组线程一起使用。 它维护一个状态&#xff0c;根据它的状态&#xff0c;它让一个线程通过或强迫它等待。 本节将讨论四种类型的同步器&#xff1a; SemaphoresBarriersLatchesExchangers 信号量 信号量用于控制可以访问资源的线程…

HTB:Active[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many SMB shares are shared by the target? 使用nmap对靶机TCP端口进行开放扫描 2.What is the name of the share that allows anonymous read access? 使用smbmap通过SMB服务对匿名用户共享权限情况进行扫描 3.Which file has…

vue3【组件封装】S-icon 图标 ( 集成 iconify )

1. 安装依赖 npm i -D iconify/jsonnpm i --save-dev iconify/vue2. 组件封装 src/components/S-icon.vue <script setup lang"ts"> // 搜索图标 https://icon-sets.iconify.design/ import { Icon } from iconify/vue defineProps({icon: {type: String,requ…

AI视觉小车基础--1.开发前的准备

1. 结束开机大程序 为了能够方便体验小车的APP功能&#xff0c;系统中增加了一个程序&#xff0c;此程序集合了APP的控制功能和玩法&#xff0c;所以称做“大程序”&#xff0c;而且在主板系统开机时&#xff0c;此程序会自动启动&#xff0c;所以称做“开机自启动大程序”。 开…

6.传输层协议、ACL

TCP和UDP协议 TCP/IP协议组的传输层协议 TCP(Transmission Control Protocol ) 传输控制协议 UDP&#xff08;User Datagram Protocol &#xff09; 用户数据报协议 TCP协议 TCP是面向连接的、可靠的进程到进程通信的协议 TCP提供全双工服务&#xff0c;即数据可在同一时间双…

避免数据丢失!在NAS上保存Docker容器配置的正确姿势

引言 如果你使用NAS来管理家庭或小型企业的数据,那么Docker容器一定不陌生。它能快速部署各种应用,比如Jellyfin、Plex等多媒体服务器。然而,很多人却踩过一个坑:NAS关机重启后,Docker容器的配置居然丢了!辛苦搭建的环境瞬间化为乌有。别担心,今天就来分享一套实用的技…

【Java的动态代理】

Java中有两种实现动态代理的方式jdk动态代理和CGLIB动态代理 jdk动态代理: 基于接口的动态代理, 目标对象必须实现接口cglib动态代理: 基于字节生成技术(ASM代码生成库), 能在运行时对java类和接口进行扩展实现 那么动态代理这个技术到底能帮我们干啥? 个人感觉这个技术在框…

python怎么安装numpy

1、在python官网https://pypi.python.org/pypi/numpy中找到安装的python版本对应的numpy版本。 例如&#xff1a; python版本是&#xff1a; 下载的对应numpy版本是&#xff1a; 2、将numpy下载到python的安装目录下的scripts文件夹中&#xff1b; 3、然后在cmd中执行以下命…

计算机三级 数据库技术

第一章 数据库应用系统开发方法 1.1 数据库应用系统生命周期 软件工程:软件工程的思想&#xff0c;即用工程的概念、原理、技术和方法对软件生产、开发的全过程进行跟踪和管理 软件开发方法:瀑布模型、快速原型模型、螺旋模型 DBAS生命周期模型 1.2 规划与分析 系统规划与定…

网络编程套接字2

之前我们已经介绍了UDP套接字流程&#xff0c;接下来我们介绍TCP流套接字编程&#xff0c;TCP的一个核心特点&#xff0c;面向字节流&#xff0c;读写数据的基本单位就是字节。 1.API介绍 1.1ServerSocket:是创建TCP服务器Socket的API&#xff08;专门给服务器用&#xff09;…