当前位置: 首页 > news >正文

Docker 从入门到精通

文章目录

  • Ubuntu 安装Docker步骤
    • 前言
    • 1. 进入Docker官网,进入开发者页面
    • 2. 选择适合自己的安装方式
    • 3. 安装 Docker
      • 1.更新系统包,安装插件,创建秘钥及目录
      • 2.安装 Docker 软件包
      • 3.设置开机启动
      • 4.通过运行 hello-world 镜像验证安装是否成功
    • 常见异常处理
      • 1. 执行`hello-world`文件的时候报错,主要是权限问题
      • 2. 由于国内要求,Docker服务已经禁止,需呀配置加速(这里由于发布要求已经封禁,需要的了解的可以联系我)
      • 3. 将 Docker 的安装源更换为阿里云的 Docker 镜像源,替换官方的镜像源。

Ubuntu 安装Docker步骤

前言

资料参考看云手册,虽然手册是付费的,但是里面介绍的真的很细,很多使用不了的解决办法都里面都有,强烈推荐:https://www.kancloud.cn/linzhifen5/dockerfile-reference

1. 进入Docker官网,进入开发者页面

  • 官网地址:https://docker.com/
    在这里插入图片描述

  • 进入开发者
    在这里插入图片描述

  • 选择引擎安装
    在这里插入图片描述

  • 在里面可以看到很多的版本,这里我们只以Ubuntu为例进行安装,中途会遇到很多报错问题,也会一起解决。
    在这里插入图片描述

2. 选择适合自己的安装方式

判断自己的版本是不是可以安装

3. 安装 Docker

Ubuntu 的 Docker 安装分为3步:

1.更新系统包,安装插件,创建秘钥及目录

更新系统包索引,以便获取最新的软件包列表;
安装 ca-certificates 和 curl;
创建一个名为 /etc/apt/keyrings 的目录,并设置该目录的权限为 0755(即所有者可读、写、执行,组和其他用户可读、执行);
使用 curl 从 Docker 官方站点下载 GPG 密钥,并将其保存到 /etc/apt/keyrings/docker.asc 路径下;
为 /etc/apt/keyrings/docker.asc 文件设置权限,允许所有用户读取该文件(a+r 表示所有用户读取权限),这是为了让 apt 能够读取并验证 Docker GPG 密钥.sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
添加 Docker 仓库到 apt 源
更新 apt 包索引echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update使用阿里云库安装(推荐):
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

2.安装 Docker 软件包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

测试 Docker 是否安装成功

docker -v

如果打印出 Docker 的版本参数,表示你的Docker已经运行成功了,恭喜喔;

如果没有Docker命令,那就是安装失败,可以参考页尾的“异常处理2”重新安装。

3.设置开机启动

sudo systemctl start docker

查看开机启动是否设置成功

systemctl status docker

Active: active (running) 表示 Docker 服务正在运行。
Loaded: loaded (/lib/systemd/system/docker.service; enabled) 表示 Docker 服务已经配置为开机启动(enabled)。

4.通过运行 hello-world 镜像验证安装是否成功

sudo docker run hello-world

安装不成功换一下自己的Docker库地址(多试几次,有50秒的启动时间),如下:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://mirror-hub-3avm.onrender.com"],"max-concurrent-downloads": 5,"log-level": "debug"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

到此安装结束。

常见异常处理

1. 执行hello-world文件的时候报错,主要是权限问题

如:出现 permission denied while trying to connect to the Docker daemon socket 错误通常是因为当前用户没有足够的权限访问 Docker 守护进程。
解决办法:

sudo usermod -aG docker $USER
sudo shutdown -r now
  • -aG:将用户追加到指定的组中。
  • $USER:这是当前的用户名。
  • shutdown -r now 重启服务器

2. 由于国内要求,Docker服务已经禁止,需呀配置加速(这里由于发布要求已经封禁,需要的了解的可以联系我)

创建 Docker 配置目录
创建并编辑 Docker 配置文件
重新加载 systemd 配置
重启 Docker 服务sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://mirror-hub-3avm.onrender.com"],"max-concurrent-downloads": 5,"log-level": "debug"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

再次测试“hello-world”

sudo docker run hello-world

测试拉取操作

docker pull xxxxx.xxxx.xxxx/okteto/docker-proxy:latest

基本解决以上问题就可以实现安装,还有问题请与作者联系。

3. 将 Docker 的安装源更换为阿里云的 Docker 镜像源,替换官方的镜像源。

(1)如果你已经按照官方源配置了 Docker 的安装源,可以先删除旧的源配置,防止冲突:

sudo rm /etc/apt/sources.list.d/docker.list

(2)将阿里云的 Docker 镜像源添加到系统的 APT 源中

echo \"deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(3)为了确保 APT 源的安全性,你需要导入阿里云的 GPG 密钥

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

设置文件权限:

sudo chmod a+r /etc/apt/keyrings/docker.asc

(4)更新软件包列表

sudo apt-get update

(5)查看 Docker 的源配置文件 /etc/apt/sources.list.d/docker.list 是否已经正确指向阿里云的镜像源

cat /etc/apt/sources.list.d/docker.list

(6)验证 GPG 密钥是否导入成功

sudo apt-key list

相关文章:

Docker 从入门到精通

文章目录 Ubuntu 安装Docker步骤前言1. 进入Docker官网&#xff0c;进入开发者页面2. 选择适合自己的安装方式3. 安装 Docker1.更新系统包&#xff0c;安装插件&#xff0c;创建秘钥及目录2.安装 Docker 软件包3.设置开机启动4.通过运行 hello-world 镜像验证安装是否成功 常见…...

uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥

从下方的偏旁部首中选在1--3个组成上面文章中的文字&#xff0c;完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…...

Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求

一、前言说明 这几个功能是近期定制的功能&#xff0c;也非常具有代表性&#xff0c;核心就是之前登录和设备信息都是在本地&#xff0c;存放在数据库中&#xff0c;数据库可以是本地或者远程的&#xff0c;现在需要改成通过网络API请求的方式&#xff0c;现在很多的服务器很强…...

案例研究:UML用例图中的结账系统

在软件工程和系统分析中&#xff0c;统一建模语言&#xff08;UML&#xff09;用例图是一种强有力的工具&#xff0c;用于描述系统与其用户之间的交互。本文将通过一个具体的案例研究&#xff0c;详细解释UML用例图的关键概念&#xff0c;并说明其在设计结账系统中的应用。 用…...

二叉树的层次遍历

二叉树的层次遍历 描述 给你一个二叉树&#xff0c;请你返回其按 层次遍历 得到的节点值&#xff08;即逐层地&#xff0c;从做到右访问所有节点&#xff09; 代码 通过两个数组来交替打印 class Solution(object):def levelOrder(self, root):if root None:return []sta…...

docker推送本地仓库报错

(base) rootainode3:~# dp 192.168.2.186:5000/bert-deepspeed:latest The push refers to repository [192.168.2.186:5000/bert-deepspeed] Get "http://192.168.2.186:5000/v2/": dial tcp 192.168.2.186:5000: connect: connection refused排查思路如下&#xff…...

Python中的asyncio:高效的异步编程模型

随着互联网应用的快速发展&#xff0c;程序的响应性和处理效率成为衡量系统性能的重要指标。传统的同步编程模型在面对高并发和IO密集型任务时&#xff0c;常常显得捉襟见肘&#xff0c;难以满足现代应用的需求。Python的asyncio库作为一种高效的异步编程模型&#xff0c;为开发…...

Oopsie【hack the box】

Oopsie 解题流程 文件上传 首先开启机器后&#xff0c;我们先使用 nmap -sC -SV来扫描一下IP地址&#xff1a; -sC&#xff1a;使用 Nmap 的默认脚本扫描&#xff08;通常是 NSE 脚本&#xff0c;Nmap Scripting Engine&#xff09;。这个选项会自动执行一系列常见的脚本&am…...

详细介绍 React 中 i18n 的完整使用流程:

接下来按照步骤&#xff0c;让我们来完成&#xff01; // 1. 首先安装必要的依赖 // npm install i18next react-i18next i18next-http-backend i18next-browser-languagedetector// 2. 创建 i18n 配置文件 (src/i18n/index.js) import i18n from i18next import { initReactI…...

部署:上传项目代码 配置数据库

一、上传代码 1、使用git 可以使用Git Clone。使用前&#xff0c;在服务器上也要创建秘钥对。这里的密钥对&#xff0c;是专门用来读取Git仓库的。 在宝塔上&#xff0c;点击终端。进来后&#xff0c;运行 ssh-keygen还是一路回车&#xff0c;密钥对就建好了。 接着用命令…...

C++—9、如何在Microsoft Visual Studio中调试C++

本文通过实例操作来介绍 Visual Studio 调试器的功能。调试器在运行过程中可提供许多方法让你查看代码的情况。 你可以逐步浏览代码、查看变量中存储的值、设置对变量的监视以查看值何时改变、检查代码的执行路径、查看代码分支是否正在运行等等。本实例主要是设置断点及查看内…...

11. C 语言 作用域与变量使用技巧

本章目录: 前言一、作用域的分类局部变量示例&#xff1a; 全局变量示例&#xff1a;示例&#xff1a; 形式参数示例&#xff1a; 二、作用域的细节与常见误区块级作用域示例&#xff1a; 静态变量与全局变量的对比示例&#xff1a; 未初始化变量的影响示例&#xff1a; 三、实…...

【机器学习案列】学生抑郁可视化及预测分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

Perl语言的循环实现

Perl语言的循环实现 引言 Perl是一种强大的脚本语言&#xff0c;以其灵活的语法和强大的文本处理能力著称。无论是在系统管理、网络编程&#xff0c;还是在Web应用开发中&#xff0c;Perl都广泛应用于各种领域。循环是编程语言中一个极其重要的概念&#xff0c;它允许程序重复…...

SpringBoot项目——使用Spark对爬虫爬取下的数据进行清洗

随着互联网信息呈爆炸式增长&#xff0c;爬虫技术被广泛用于从海量网页中抓取有价值的数据。然而&#xff0c;爬取到的数据往往存在格式不规范、重复、噪声等诸多问题&#xff0c;需要高效的数据清洗流程来保障数据质量&#xff0c;Spark 在其中发挥了关键作用。 什么是Spark …...

分布式锁 Redis vs etcd

为什么要实现分布式锁?为什么需要分布式锁,分布式锁的作用是什么,哪些场景会使用到分布式锁?分布式锁的实现方式有哪些分布式锁的核心原理是什么 如何实现分布式锁redis(自旋锁版本)etcd 的分布式锁(互斥锁(信号控制)版本) 分布式锁对比redis vs etcd 总结 为什么要实现分布式…...

《深度剖析:开源与闭源模型,AI舞台上的不同角色》

在人工智能蓬勃发展的当下&#xff0c;模型的选择如同为一场战役挑选合适的武器&#xff0c;至关重要。开源模型与闭源模型作为AI领域的两大阵营&#xff0c;在性能和应用场景上展现出显著差异&#xff0c;深刻影响着开发者、企业以及整个行业的走向。 性能差异&#xff1a;实…...

Angular结合C#

在 Angular 2 及以上版本与 C#结合使用 REST API 的示例中&#xff0c;我们将分别展示前端 Angular 服务和后端 C# Web API 的实现。 一、前端&#xff1a;Angular 服务 生成 Angular 服务 使用 Angular CLI 生成一个新的服务&#xff0c;例如user.service.ts&#xff1a; ng…...

Spring——自动装配

假设一个场景&#xff1a; 一个人&#xff08;Person&#xff09;有一条狗&#xff08;Dog&#xff09;和一只猫(Cat)&#xff0c;狗和猫都会叫&#xff0c;狗叫是“汪汪”&#xff0c;猫叫是“喵喵”&#xff0c;同时人还有一个自己的名字。 将上述场景 抽象出三个实体类&…...

Servlet与JSP:Java的秘密花园入口

1 Servlet概述 Servlet是Java Web应用中的一个核心组件&#xff0c;它是一个运行在服务器端的Java程序&#xff0c;可以响应客户端的请求并生成响应。Servlet为Web应用提供了一个统一的接口来处理HTTP请求。 2 Servlet的生命周期 Servlet的生命周期包括以下几个阶段&#xff…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...