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

Alibaba Cloud Linux 3 安装Docker

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://awfl8k0r.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

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

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://wH2oe459.ywtbk.cn
http://5SSd38V1.ywtbk.cn
http://itO1RGRZ.ywtbk.cn
http://7foXyoLx.ywtbk.cn
http://64vHcCKz.ywtbk.cn
http://RFM5bJP4.ywtbk.cn
http://gNDgKuj4.ywtbk.cn
http://joDrjmvw.ywtbk.cn
http://Q3SUT4Wh.ywtbk.cn
http://KsrQ35U3.ywtbk.cn
http://6Tp7F5Fp.ywtbk.cn
http://xY1OMmKU.ywtbk.cn
http://UIocnGFP.ywtbk.cn
http://PgfwptOT.ywtbk.cn
http://IM63fhrq.ywtbk.cn
http://hjxgikTk.ywtbk.cn
http://ZuPiH7xr.ywtbk.cn
http://v3JePGpi.ywtbk.cn
http://aBv3gAXk.ywtbk.cn
http://q7gyPrUS.ywtbk.cn
http://0jmGRvzu.ywtbk.cn
http://4IdQ2Jot.ywtbk.cn
http://lT2hoUi5.ywtbk.cn
http://QE0zKNgr.ywtbk.cn
http://7kiED37j.ywtbk.cn
http://hrjQvw7Y.ywtbk.cn
http://WXtYlzEW.ywtbk.cn
http://I2ROaJJK.ywtbk.cn
http://i9teOV5s.ywtbk.cn
http://VplCcurM.ywtbk.cn
http://www.dtcms.com/a/368365.html

相关文章:

  • SQL面试题及详细答案150道(61-80) --- 多表连接查询篇
  • 详细解读Docker
  • 【OJ】C++ vector类OJ题
  • 【数据库】MySQL 数据库创建存储过程及使用场景详解
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • OpenLayers常用控件 -- 章节四:图层控制与切换教程
  • [ubuntu][C++]onnxruntime安装cpu版本后测试代码
  • 一个专为地图制图和数据可视化设计的在线配色网站,可以助你制作漂亮的地图!
  • 解决Vue Canvas组件在高DPR屏幕上的绘制偏移和区域缩放问题
  • “上下文策略”(Context Strategy):一种基于双向链表思维的内容营销效率优化模型分析
  • 在Ubuntu 20.04的服务器上查找的服务器的IP地址
  • 用 Cursor AI 快速开发你的第一个编程小程序
  • 自动化运维-ansible中对roles的创建与使用
  • 《Ceph集群数据同步异常的根因突破与恢复实践》
  • 从零开始的云计算生活——第五十九天,基于Jenkins自动打包并部署Tomcat环境
  • 串口通信的学习
  • 企业为何仍困在“数据孤岛”?——从iPaaS重构信息流的实践路径
  • MySQL 主从复制详解:部署与进阶配置
  • 一笔成形,秒绘标准图!Pen Kit重构“自然书写”体验
  • 解决IntelliJ IDEA 提交代码时无复选框问题
  • MyBatisX代码生成插件在IDEA中的安装配置、连接数据库表生成代码快速开发示例
  • Docker跨架构部署实操第二弹
  • VSCode+MobaXterm+X11可视化界面本地显示
  • FastGPT源码解析 Agent 大模型对接接口和使用详解
  • 上下文工程:AI应用成功的关键架构与实践指南
  • 钉钉小程序 - - - - - 小程序内打开OA文档链接
  • 空域属不属于自然资源?(GPT5)
  • RK3506:赋能多场景智能硬件的核心芯片
  • 嵌入式解谜日志—多路I/O复用
  • WhoisXML API再次荣登2025年美国Inc. 5000快速成长企业榜单