Docker初识及使用研究

公司使用docker,小组成员人人都是默默使用,也没讲解培训,真是搞笑。
记录自己独自研究及使用:
1)自己安装->失败-系统弄崩->安装成功

目录

  • 1. Docker安装-初次安装失败
  • 2. Docker安装-初次安装成功

1. Docker安装-初次安装失败

需要使用梯子访问docker官网:Install Docker Engine on Ubuntu

此处有个疑惑:Docker Engine 与Docker、DockerDesktop关系?

该页面“Install Docker Engine on Ubuntu”下,“Installation methods”描述道:
You can install Docker Engine in different ways, depending on your needs(可以根据需要以不同的方式安装Docker Engine)
1)Docker Engine comes bundled with Docker Desktop for Linux. This is the easiest and quickest way to get started.
Docker引擎捆绑了 Linux的Docker桌面。这是 最简单快捷的入门方式
2)Set up and install Docker Engine from Docker’s apt repository.
设置和安装Docker引擎 Docker的apt存储库。
3)Install it manually and manage upgrades manually.
手动安装它并手动管理升级。
4)Use a convenience script. Only recommended for testing and development environments.
使用一个 方便脚本。只有 推荐用于测试和开发环境。

按照上述说明,安装Docker Desktop是最简洁的方式,但是下载Docker Desktop.deb后安装失败,提示如下:
sudo apt-get update
sudo apt-get install ./docker-desktop-amd64.deb

The following packages have unmet dependencies:
docker-desktop : Depends: docker-ce-cli but it is not installable
E: Unable to correct problems, you have held broken packages.

官网文档,
在这里插入图片描述
我本来以为是ubuntu20的版本不对,但是也没找到适配ubuntu20的版本,此处有些疑惑?

搜索问题Unable to install Docker Desktop on Ubuntu 22.04

Docker Desktop has a dependency on the docker CLI, which requires the download.docker.com package repository to be set up before installing the docker-desktop package; from the error message, I suspect you didn’t set up that repository (see “step 1” in the instructions; https://docs.docker.com/desktop/install/ubuntu/#install-docker-desktop
(Docker Desktop依赖于docker CLI,这需要在安装docker-桌面包之前设置download.docker.com包存储库;从错误消息来看,我怀疑您没有设置该存储库(请参阅说明中的“步骤1”;https://docs.docker.com/desktop/install/ubuntu/#install-docker-desktop)

结合文档:在 Ubuntu 上安装 Docker 桌面

遂在Docker文档Desktop下载页面中Install Docker Desktop on Ubuntu

Install Docker Desktop
Recommended approach to install Docker Desktop on Ubuntu:
1.Set up Docker’s package repository. See step one of Install using the apt repository.
2.Download latest DEB package.
3.Install the package with apt as follows:
sudo apt-get update
sudo apt-get install ./docker-desktop-<arch>.deb

要首先安装Docker’s package repository,不知道与Docker什么关系,有什么用。

Install using the apt repository
Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker repository. Afterward, you can install and update Docker from the repository.
1.Set up Docker’s apt repository.

# Add Docker's official GPG key:
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# Add the repository to Apt sources:
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

2.Install the Docker packages.
Latest:

To install the latest version, run:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Specific version:

To install a specific version of Docker Engine, start by listing the available versions in the repository:
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'5:27.0.3-1~ubuntu.24.04~noble
5:27.0.2-1~ubuntu.24.04~noble
...
Select the desired version and install:
VERSION_STRING=5:27.0.3-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

3.Verify that the Docker Engine installation is successful by running the hello-world image.

sudo docker run hello-world

This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.

需要 使用sudo运行Docker命令

问题:
命令sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 卡住?!!
解决办法:在Ubuntu中安装Docker,添加Docker官方GPG key失败,解决方案
(1)先把官方GPG key下载到本地,下载下来是一个gpg文件
(2)下载到本地后,采用如下命令,安装官方GPG key:

sudo apt-key add ./gpg

Linux apt-key机制后续需要研究

使用了本地sudo apt-key add ./gpg gpg命令后Add the repository to Apt sources添加docker库命令觉得应该修改,但我不知道怎么修改

我是用的下载下来的Desktop.deb文件

20240710使用中科大源能用官方命令gpg运行成功

=======================================
更新于20240715

2. Docker安装-初次安装成功

经过上述失败尝试,在网友指点下,安装成功,遂总结归纳记录。

step1:Docker官方网站找到安装步骤

# Add Docker's official GPG key:
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# Add the repository to Apt sources:
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

此处建议:别用deb安装,使用上述apt安装,需挂梯子

step2:解决网络问题,具体如下:
运行clash,终端export Https=127.0.0.1:7890

在“sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc”这一步骤:
此处注意:export不会对sudo生效,
先sudo -i 进入root环境再export

apt安装中需要走docker源,安装过程中代理不能断,除非手动换源

“echo
“deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu
KaTeX parse error: Expected 'EOF', got '&' at position 20: …etc/os-release &̲& echo "VERSION_CODENAME”) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null”

这个命令之后update会在/etc/apt/sources.list.d/docker.list更换里面的源

#deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu   focal stable
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu   focal stable

curl吃环境变量,apt不吃环境变量,有的软件不吃环境变量,最简单的方法是用proxychains
可使用apt安装一下。

到此update即成功完成!

helloword验证环境失败:
主要原因是dockerhub被墙,需科学上网。

proxychains配置:sudo vi /etc/proxychains.conf
64行,4改5,端口7891或7890

#socks4 	127.0.0.1 9050
socks5 	127.0.0.1 7890

proxychains docker pull helloword 但是失败

在这里插入图片描述
参考连接:奇技淫巧系列 配置代理解决docker pull命令无法拉取镜像的问题

暂时还未研究,待续。

垃圾docker,作为一个软件,新手安装门槛这么高,还把系统弄崩溃了~~

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

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

相关文章

C# 做一个临时的对象结构,并用linq查找

在C#中&#xff0c;可以使用匿名类型来创建一个临时的对象结构&#xff0c;并使用LINQ来查询这些对象。以下是一个简单的例子&#xff1a; using System; using System.Linq; using System.Collections.Generic;public class Program {public static void Main(){// 创建一个匿…

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…

网线8芯分开4芯一组

一、网线如何一分为二 网线通常包含8根线芯&#xff0c;这8根线芯在标准的以太网连接中都有其特定的作用&#xff0c;但并非所有线芯在较低速率的网络连接中都是必要的。 1、网线线芯的作用 在标准的1000Mbps&#xff08;千兆&#xff09;以太网连接中&#xff0c;所有的8根…

PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题&#xff1f;一、了解长事务阻塞的原因&…

结合实体类型信息(2)——基于本体的知识图谱补全深度学习方法

1 引言 1.1 问题 目前KGC和KGE提案的两个主要缺点是:(1)它们没有利用本体信息;(二)对训练时未见的事实和新鲜事物不能预测的。 1.2 解决方案 一种新的知识图嵌入初始化方法。 1.3 结合的信息 知识库中的实体向量表示&#xff0b;编码后的本体信息——>增强 KGC 2基…

思迈特软件2023H2商业智能和分析软件市场份额增长速度跃居第一

近日&#xff0c;全球知名的IT市场研究与咨询公司IDC发布了《中国商业智能和分析软件市场跟踪报告&#xff0c;2023H2》。根据报告显示&#xff0c;思迈特软件在中国商业智能和分析软件市场份额中位列前五&#xff0c;在中国BI厂商中排名TOP2。 尤其值得一提的是&#xff0c;思…

Spring是如何管理事务的?

spring通过编程式事务和声明式事务管理来控制事务的边界和行为。 1. 事务管理器 Spring 通过事务管理器&#xff08;Transaction Manager&#xff09;来管理事务。不同的持久化技术&#xff08;如 JDBC、JPA、Hibernate&#xff09;对应不同的事务管理器&#xff0c;例如&…

【数据结构】Splay详解

Splay 引入 Splay旋转操作splay操作插入操作查询x排名查询排名为x删除操作查询前驱/后继模板Splay时间复杂度分析 进阶操作截取区间区间加&#xff0c;区间赋值&#xff0c;区间查询&#xff0c;区间最值区间翻转原序列整体插入指定位置插入整体插入末尾区间最大子段和 一些好题…

C++客户端Qt开发——常用控件(按钮类控件)

2.按钮类控件 ①QPushButton 按钮 继承自QAbstractButton&#xff0c;这个类是⼀个抽象类&#xff0c;是其他按钮的父类 属性 说明 text 按钮中的文本 icon 按钮中的图标 iconSize 按钮中图标的尺寸 shortCut 按钮对应的快捷键 autoRepeat 按钮是否会触发&#xff…

AMD software 将两个显示器合并为一个超宽显示器

最近玩游戏的时候&#xff0c;发现了一个骚操作。 可以将两个显示器&#xff08;更多个的自己去试&#xff0c;不知道&#xff09;组合为一个显示器&#xff0c;注意&#xff0c;这里说的不是将两个显示都连接电脑从而使用双屏显示器&#xff0c; 而是 将两个显示器组合为一个…

基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏&#xff0c;有兴趣的 可以关注一下 公众号&#xff0c; 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**&#xff1a; - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态&#xff0c;…

C双指针元素去重

需求 在尾部插⼊、删除元素是⽐较⾼效的&#xff0c;时间复杂度 是 O(1)&#xff0c;但是如果在中间或者开头插⼊、删除元素&#xff0c;就会涉及数据的搬移&#xff0c;时间复杂度为 O(N)&#xff0c;效率较低。 代码 #include <stdio.h>// 相邻元素去重 int remove…

01 电场强度通量 高斯定理

电场强度通量 高斯定理 5-4 电场强度通量 高斯定理一.电场线二.电场强度通量三.高斯定理四高斯定理应用举例典型电场的电场线分布图形正点电荷与负点电荷的电场线一对等量正点电荷的电场线一对等量异号点电荷的电场线一对不等量异号点电荷的电场线带电平行板电容器的电场线 5-4…

CompletableFuture介绍与实战

CompletableFuture 介绍与实战 一、前言 ​ 日常工作中&#xff0c;大多数情况下我们的接口的执行逻辑都是串行化的&#xff0c;串行化的逻辑也基本能满足我们绝大部分的场景。但是&#xff0c;在一些情况下我们的代码可能会存在一些比较耗时的操作&#xff0c;串行的逻辑就有…

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1 对接源平台:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用…

利用Java 8 Stream API实现列表按外部顺序排序的技巧

正文&#xff1a; 在开发过程中&#xff0c;我们常会遇到需要根据某个外部列表的顺序来重新排序另一个对象集合的需求。比如&#xff0c;在处理流调模块的流调问题时&#xff0c;你可能已经有了一个按照特定规则排序的问题ID列表&#xff0c;但你的问题对象集合却是无序的。本…

OpenLayers学习笔记-点位聚合

需求 用户点击行政区划等操作后,从后台获取区域内的点位数据,在地图上聚合显示。用户手动取消聚合,点位直接渲染在地图上。 实现过程 使用后台返回的点位数据,通过new ol.source.Vector({features})创建矢量数据源。使用new ol.source.Cluster({source})创建聚合标注数据…

Gstreamer学习3.1------使用appsrc灌颜色信号数据

这个视频内容讲解的离散余弦变换&#xff0c;讲的很好&#xff0c; 离散余弦变换可视化讲解_哔哩哔哩_bilibili 其中讲到&#xff0c;把颜色变化转换为曲线的处理&#xff0c; 在前面的学习中&#xff0c;我们知道了可以向appsrc来灌数据来进行显示 Gstreamer学习3----灌数据…

C# 多态性

C# 多态性 介绍 多态性是面向对象编程(OOP)的一个核心概念,它允许不同类的对象对同一消息做出响应,并产生不同的结果。在C#中,多态性主要通过继承、接口和虚方法来实现。本文将深入探讨C#中的多态性,包括其原理、实现方式以及在实际编程中的应用。 原理 多态性允许将…