Alibaba Cloud Linux 3 安装Docker

发布于:2025-09-08 ⋅ 阅读:(20) ⋅ 点赞:(0)

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),顺序颠倒会无效。


网站公告

今日签到

点亮在社区的每一天
去签到