Alibaba Cloud Linux 3 基于 Red Hat Enterprise Linux (RHEL) 兼容内核,安装 Docker 的步骤与 RHEL/CentOS 系列类似,以下是具体操作:

1. 卸载旧版本(如有)

sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2. 安装必要依赖

sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

命令解析:

(1) sudo

以超级用户(root)权限执行后续命令。安装系统软件通常需要 root 权限,sudo 用于临时提升当前用户的权限。

(2) dnf

Red Hat 系 Linux 系统的新一代包管理工具(全称为 Dandified YUM),用于管理软件包的安装、更新、卸载等操作,替代了传统的 yum 工具(但语法兼容 yum)。

(3)install

dnf 的子命令,作用是安装指定的软件包。

(4)-y

dnf 的可选参数,全称 --assumeyes,表示在安装过程中自动回答 “yes”(确认安装),无需用户手动输入确认,适合自动化脚本或希望快速安装的场景。

(5) 软件包名称(三个依赖包)

  • yum-utils
    提供了一系列与 yum/dnf 相关的辅助工具(如 yum-config-manager),用于管理软件仓库(添加 / 删除仓库、启用 / 禁用仓库等),在安装 Docker 时用于添加 Docker 官方仓库。

  • device-mapper-persistent-data
    设备映射器(Device Mapper)的持久化数据工具包。设备映射器是 Linux 内核中的存储管理框架,Docker 的部分存储驱动(如 devicemapper)依赖此工具实现存储设备的映射和管理。

  • lvm2
    逻辑卷管理(LVM,Logical Volume Manager)工具集,提供对磁盘分区的高级管理功能(如动态调整分区大小、合并多个磁盘等)。Docker 在使用某些存储驱动(如基于 LVM 的 devicemapper 模式)时需要依赖此工具。

整体作用

这条命令的目的是以 root 权限自动安装 Docker 所需的基础依赖包,为后续添加 Docker 仓库、安装 Docker 引擎做准备。这些依赖包主要用于支持软件仓库管理和 Docker 存储驱动的正常运行。

3. 添加 Docker 官方仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Alibaba Cloud Linux 3 兼容 CentOS 仓库,因此使用 CentOS 的 Docker 源

补充说明

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo Curl error (35): SSL connect error for https://download.docker.com/linux/centos/docker-ce.repo [OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to download.docker.com:443 ]

Error: Configuration of repo failed

若遇到仓库访问问题,可替换为阿里云镜像源加速(推荐):

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://你的阿里云加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

阿里云镜像加速器地址可在 阿里云容器镜像服务 中获取。

  1. 登录 阿里云容器镜像服务(需阿里云账号)
  2. 在左侧菜单找到「镜像加速器」,获取专属加速地址(格式类似 https://xxxx.mirror.aliyuncs.com

4、安装 Docker 引擎

sudo dnf install -y docker-ce docker-ce-cli containerd.io

5. 启动 Docker 并设置开机自启

sudo systemctl start docker          # 启动服务
sudo systemctl enable docker         # 设置开机自启
sudo systemctl status docker         # 查看服务状态(可选)

6. 验证安装

运行测试镜像确认 Docker 正常工作:

sudo docker run hello-world

若成功,会输出 "Hello from Docker!" 等信息,表明安装完成。

7. (可选)配置非 root 用户使用 Docker

默认需要 sudo 权限,如需允许当前用户直接使用 Docker:

sudo usermod -aG docker $USER

设置后需 注销并重新登录 生效。

8. 容器命令

(1) docker container run -d --name  webserver -p 80:8080 nigelpoulton/pluralsight-docker-ci

基于 nigelpoulton/pluralsight-docker-ci 镜像启动一个后台运行的容器

docker container run : 核心命令,用于创建并启动一个新容器(等价于简化写法 docker run

-d:--detach 的缩写,表示容器启动后在后台运行(不占用当前终端),终端会返回容器的 ID(方便后续管理)。

-p 80:8080:

端口映射配置,格式为 主机端口:容器端口

  • 主机端口 80:表示宿主机(你的 Linux 服务器)对外开放的端口。
  • 容器端口 8080:表示容器内部应用实际运行的端口(该镜像中的 Web 服务默认在 8080 端口提供服务)。
  • 效果:外部访问宿主机的 80 端口时,请求会自动转发到容器内的 8080 端口,从而访问到容器中的 Web 服务。

(2) docker container run -it ubuntu /bin/bash   

基于 ubuntu 镜像启动一个交互式的容器,并进入容器的 bash 终端

-it :两个选项的组合,是进入容器交互式终端的关键:

  • -i--interactive):保持容器的标准输入(STDIN)打开,确保你能向容器输入命令。
  • -t--tty):为容器分配一个伪终端(类似终端窗口),让你能像操作普通终端一样与容器交互。

两者结合(-it)的效果是:创建一个可交互的终端环境,让你能直接在容器内输入命令(如 lspwd 等)。

(3)docker container ls 

列出当前正在运行的容器的命令,可以简写为更常用的 docker ps(两者功能完全一致,ps 是 "process status" 的缩写,类比 Linux 中的 ps 命令)。

常用选项

  • -a 或 --all:显示所有容器(包括已停止的,不仅仅是运行中的)。
    示例:docker container ls -a 或 docker ps -a

  • -q 或 --quiet:只显示容器的 ID(常用于批量操作,如删除所有容器 docker rm $(docker ps -aq))。
    示例:docker container ls -q 或 docker ps -q

  • -l 或 --latest:只显示最近创建的一个容器(无论是否运行)。

(4)docker container exec  

Docker 中用于在正在运行的容器内执行命令的核心命令,常用于在不停止容器的情况下,临时操作容器内部环境(如进入终端、查看文件、运行脚本等)

(5) docker container stop 停止运行中的容器,并将状态置为Exited(0)。

(6)docker container start 重启处于停止(Exited)状态的容器

(7)docker container rm 删除停止的容器

推荐使用docker container stop停止容器,再使用 docker container rm删除

9、Ctrl-PQ  断开shell和容器终端之间的连接,并再推出后保持容器再后台运行。

 注意事项

  • 仅适用于 “交互式终端”Ctrl+P+Q 只在通过 -it 选项创建的伪终端中生效(如 bash/sh),若未加 -it(如直接执行 docker exec 容器名 ls),则无法使用该快捷键。
  • 避免按错顺序:必须是 Ctrl+P 后接 Ctrl+Q(实际操作中按住 Ctrl 不放,依次按 P、Q),顺序颠倒会无效。

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

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

相关文章

每日一练001.pm

题目详情&#xff1a; P5705 【深基2.例7】数字反转 - 洛谷 题目描述 输入一个不小于 100 且小于 1000&#xff0c;同时包括小数点后一位的一个浮点数&#xff0c; 例如 123.4 &#xff0c;要求把这个数字翻转过来&#xff0c;变成 4.321 并输出。 #include<iostream&g…

AI智能优化SEO关键词策略实战

本文聚焦AI如何智能优化SEO关键词策略&#xff0c;通过实战案例分享高效技巧&#xff0c;帮助提升网站搜索排名和流量转化效果。内容涵盖AI革新关键词策略的原理、智能优化技巧的实际应用、高效关键词布局方法、避免常见错误的实战指南&#xff0c;以及综合策略推动排名飞跃的路…

360° 拖动旋转的角度计算原理

360 拖动旋转的角度计算原理 简化的 正方形 div demo 专注讲清楚「点击 / 拖动如何计算角度」这个原理&#xff0c;没有精美 UI哦 中间标注中心点鼠标点击或拖动时&#xff0c;计算当前位置相对于中心的角度在页面上实时显示角度代码示例&#xff08;原生 HTML JS&#xff09;…

五分钟XML速成

原文链接&#xff1a; XML - Dive Into Python 3 深入探讨 本书几乎所有章节都围绕一段示例代码展开&#xff0c;但 XML 并非关于代码&#xff0c;而是关于数据。 XML 的一个常见用途是 “聚合提要”&#xff08;syndication feeds&#xff09;&#xff0c;用于列出博客、论坛…

如何直接访问docker容器中的端口服务而不需要改端口映射

查看docker容器对于宿主服务器的ip地址 docker inspect -f {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}} $容器名 # 替换$容器名 为自己的启动docker内的服务&#xff0c;监听端口是否用信息 curl http://172.17.0.2:90有信息就可以直接通过该ip访问docker容器端口…

《Istio故障溯源:从流量劫持异常到服务网格的底层博弈》

服务网格常被企业视为微服务通信复杂性的“终极方案”。不少团队在部署Istio时,往往满足于“控制面启动、Sidecar注入成功”的表层验证,却忽视了底层机制与业务场景的深度适配—这种“重部署轻调优”的心态,往往为后续的生产故障埋下隐患。某大型金融机构的核心交易中台在接…

第24节:3D音频与空间音效实现

第24节&#xff1a;3D音频与空间音效实现 概述 3D音频是构建沉浸式体验的关键组件&#xff0c;它通过模拟真实世界中的声音传播特性&#xff0c;为用户提供空间感知和方向感。本节将深入探讨Web Audio API与Three.js的集成&#xff0c;涵盖空间音效原理、音频可视化、多声道处理…

一步搞清楚本地客户端和全局服务器是如何更新模型的

我们可以把它想象成一个 “老师”和“学生” 协作学习的过程。全局服务器 “老师”本地客户端 “学生”整个模型更新的过程遵循一个核心原则&#xff1a;“数据不动&#xff0c;模型动”。原始数据永远留在本地客户端&#xff0c;只有模型的参数&#xff08;即模型的“知识”…

跨平台超低延迟RTSP播放器技术设计探究

摘要 RTSP 播放在实验室里“跑起来”并不难&#xff0c;难的是在真实场景中做到 超低延迟、跨平台、高稳定&#xff0c;并长期可靠运行。大牛直播SDK&#xff08;SmartMediaKit&#xff09;的全自研跨平台 RTSP 播放栈&#xff0c;正是把这些工程难题转化为可用、可控、可交付的…

知识点汇集——web(三)

1.index.php 的备份文件名通常为index.php.bak 2.PHP2是服务器端脚本语言&#xff0c;主要用于处理和生成网页的内容&#xff0c;当用户访问一个网站时&#xff0c;PHP脚本会在服务器上执行&#xff0c;生成动态的HTML页面&#xff0c;然后将页面发送给用户的浏览器进行显示。p…

变频器【简易PLC】功能中的时间问题

一、变频器的简易PLC功能简易PLC功能是将提前设置好的多端速频率&#xff0c;进行自动运行&#xff0c;类似于PLC程序中的CASE指令一样&#xff0c;我们需要提前设置好几段频率&#xff0c;该频率所维持的时间&#xff0c;以及加减速时间&#xff0c;按下启动后&#xff0c;变频…

Swift 解题:LeetCode 372 超级次方(Super Pow)

文章目录摘要描述题解答案题解代码分析代码解析示例测试及结果时间复杂度空间复杂度总结摘要 在算法题里&#xff0c;有一些问题看似“简单”&#xff0c;比如算一个幂次方&#xff0c;但一旦放大规模就完全不同了。LeetCode 372 超级次方就是这样的题目。普通的幂运算没什么难…

揭秘23种设计模式的艺术与技巧之结构型

结构型模式&#xff1a;优化软件结构的策略代理模式&#xff08;Proxy Pattern&#xff09;代理模式就像一个经纪人&#xff0c;代表真实对象进行操作。比如&#xff0c;在网络访问中&#xff0c;我们可能会通过代理服务器来访问外部网站。在软件中&#xff0c;当一个对象由于某…

PyTorch图像数据转换为张量(Tensor)并进行归一化的标准操作

transform ToTensor() 是 PyTorch 中用于将图像数据转换为张量&#xff08;Tensor&#xff09;并进行归一化的标准操作&#xff0c;以下是对其功能的逐层解析及关键细节&#xff1a;核心功能总结功能描述类型转换将 PIL Image / numpy 数组 → PyTorch Tensor (dtype: torch.f…

HarmonyOS学习

一&#xff0c;DevEoc Studio基本内容学习项目工程目录entry 默认的项目入口模块ets 界面相关文件&#xff08;目前都放入pages文件内即可&#xff09;resource资源文件&#xff0c;配置文件index.est默认文件’ ‘开头的一般为装饰器&#xff0c;修饰功能&#xff0c;来约定后…

【大前端】Vue 和 React 主要区别

Vue 与 React 的主要区别 在前端开发领域&#xff0c;Vue 和 React 是两大最受欢迎的框架/库。尽管它们都可以帮助我们构建现代化的 Web 应用&#xff0c;但在设计理念、开发方式、生态系统等方面有许多不同。本文将从多个角度对两者进行对比。 目录 框架与库的定位核心理念…

高级RAG策略学习(五)——llama_index实现上下文窗口增强检索RAG

LlamaIndex上下文窗口实现详解 概述 本文档详细讲解基于LlamaIndex框架实现的上下文窗口RAG系统&#xff0c;重点分析关键步骤、语法结构和参数配置。 1. 核心导入与环境配置 1.1 必要模块导入 from llama_index.core import Settings from llama_index.llms.dashscope import …

Doris 数据仓库例子

基于 Apache Doris 构建数据仓库的方案和具体例子。Doris 以其高性能、易用性和实时能力&#xff0c;成为构建现代化数据仓库&#xff08;特别是 OLAP 场景&#xff09;的优秀选择。一、为什么选择 Doris 构建数据仓库&#xff1f;Doris&#xff08;原名 Palo&#xff09;是一个…

WebRTC进阶--WebRTC错误Failed to unprotect SRTP packet, err=9

文章目录 原因分析 SRTP Anti-Replay 机制 客户端源码 err=9 的定义: 为什么会触发 replay_fail ✅ 解决方向 原因分析 SRTP Anti-Replay 机制 SRTP 收包时会用一个 Replay Window(64/128个序列号大小)检查 seq 是否合理。 如果你构造的恢复包 recover_seq 比当前接收窗口…

Web服务与Nginx详解

文章目录前言一、Web 概念1.1 Web 的基本概念1.1.1 特点1.2 B/S 架构模型1.3 Web 请求与响应过程1.4 静态资源与动态资源1.5 Web 的发展阶段1.6 实验&#xff1a;搭建最小 Web 服务1.6.1 实验目标1.6.2 实验步骤1.7 小结二、HTTP 与 HTTPS 协议2.1 HTTP 与 HTTPS 的区别2.2 HTT…