Docker 离线安装(非 root 用户)教程

内容纲要

Docker 离线安装(非 root 用户)教程

这篇文档将详细介绍如何在没有 root 权限和没有网络的 CentOS 系统上,完成 Docker 的离线安装,并为小白提供清晰的步骤。我们将给出每个步骤的详细说明以及一键安装脚本,确保你能够顺利完成安装。

安装前准备

  1. 你需要具备的权限:

    • 你不需要 root 权限,但需要一定的用户权限来操作文件和创建目录。
  2. 你需要的资源:

    • 一台有网络连接的云主机或其他 Linux 系统来下载 Docker 离线安装包。
    • 一个 U 盘或其它方式来传输文件。
    • 离线安装包传输到目标 CentOS 系统中。

步骤 1:在有网络的机器上下载 Docker 离线包

首先,我们需要在一台有网络的机器(如云主机)上下载 Docker 离线安装包,然后通过 U 盘或其他方式将其传输到目标 CentOS 服务器。

  1. 更新和安装必需工具

    打开终端,运行以下命令,确保你的系统有最新的依赖包:

    sudo yum update -y
    sudo yum install -y wget curl
  2. 下载 Docker 离线安装包

    运行以下命令来下载 Docker 离线安装包:

    curl -fsSL https://download.docker.com/linux/centos/x86_64/stable/Packages/ | grep docker-ce | sed -n 's/.*href="\([^"]*\)".*/\1/p'

    上面的命令会列出所有 Docker 的安装包链接,找到适合你的 Docker 版本,并复制其中的 .rpm 下载链接。

    然后,你可以使用 wgetcurl 来下载文件:

    wget https://download.docker.com/linux/centos/x86_64/stable/Packages/docker-ce-.rpm
  3. 传输 Docker 离线安装包

    将下载的 .rpm 文件传输到目标 CentOS 系统。你可以使用 scp,U 盘,或者其它方式来传输文件。

    示例使用 scp 将文件从云主机传输到目标 CentOS 系统:

    scp docker-ce-.rpm youruser@yourcentos:/home/youruser/docker/

步骤 2:安装 Docker(非 root 用户)

在目标 CentOS 系统上,我们将使用非 root 用户安装 Docker。

  1. 切换到文件所在目录

    登录到 CentOS 系统后,切换到 Docker 离线安装包所在的目录:

    cd /home/youruser/docker
  2. 安装 Docker 离线包

    由于没有 root 权限,我们将 Docker 安装到用户的本地目录。使用 rpm 命令来安装 Docker .rpm 包,并通过 --nodeps 跳过对依赖的检查:

    rpm -ivh docker-ce-.rpm --nodeps --prefix=$HOME/.local/
  3. 创建 Docker 相关目录

    安装完成后,我们需要为 Docker 创建必要的目录:

    mkdir -p $HOME/.local/docker
  4. 设置 Docker 环境变量

    Docker 的执行文件和相关数据将安装到 $HOME/.local/ 路径下,因此我们需要设置相应的环境变量。

    ~/.bashrc 文件中加入以下内容:

    echo "export DOCKER_HOST=unix:///home/youruser/.local/docker/docker.sock" >> ~/.bashrc
    source ~/.bashrc

    这样,每次启动终端时,都会加载相应的 Docker 环境变量。

步骤 3:启动 Docker(无 root 权限)

由于你没有 root 权限,无法直接使用 systemctl 来启动 Docker 服务。但是,我们可以手动启动 Docker 守护进程,并通过环境变量与其进行通信。

  1. 启动 Docker 守护进程

    使用以下命令在用户空间启动 Docker 守护进程:

    nohup $HOME/.local/bin/dockerd --host=unix:///home/youruser/.local/docker/docker.sock &
  2. 启动 Docker 客户端

    启动 Docker 客户端,以便你能够与 Docker 守护进程进行交互:

    $HOME/.local/bin/docker --host=unix:///home/youruser/.local/docker/docker.sock info

    如果输出 Docker 的版本信息,说明 Docker 已经成功启动并运行。

步骤 4:验证 Docker 安装

通过以下命令检查 Docker 是否安装成功:

$HOME/.local/bin/docker --host=unix:///home/youruser/.local/docker/docker.sock --version

如果显示 Docker 的版本信息,恭喜你,Docker 已成功安装并运行!

一键安装脚本

为了让过程更加简化,我们提供一个一键安装脚本 install_docker.sh,只需要将脚本保存到 CentOS 系统中,并执行即可完成 Docker 安装。

#!/bin/bash

# 检查是否具有 root 权限
if [ "$(id -u)" -ne 0 ]; then
  echo "请使用 root 用户或通过 sudo 执行脚本"
  exit 1
fi

# 设置离线包的路径
DOCKER_PACKAGE_PATH="/home/youruser/docker"

# 安装 Docker 离线包
echo "正在安装 Docker 离线包..."

rpm -ivh $DOCKER_PACKAGE_PATH/docker-ce-*.rpm --nodeps --prefix=$HOME/.local/

# 创建 Docker 所需目录
mkdir -p $HOME/.local/docker

# 设置 Docker 相关环境变量(如 DOCKER_HOST)
echo "export DOCKER_HOST=unix:///home/youruser/.local/docker/docker.sock" >> ~/.bashrc
source ~/.bashrc

# 启动 Docker 守护进程
nohup $HOME/.local/bin/dockerd --host=unix:///home/youruser/.local/docker/docker.sock &

# 启动 Docker 客户端
$HOME/.local/bin/docker --host=unix:///home/youruser/.local/docker/docker.sock info

# 完成安装
echo "Docker 安装成功"

使用方法

  1. 将上面的脚本保存为 install_docker.sh 文件。

  2. 给脚本添加执行权限:

    chmod +x install_docker.sh
  3. 运行脚本:

    ./install_docker.sh

运行脚本后,Docker 会自动安装并启动。

总结

通过以上步骤,你可以在没有 root 权限和网络连接的 CentOS 系统上,使用离线包成功安装 Docker。通过设置 Docker 环境变量和手动启动 Docker 守护进程,你就可以在没有 root 权限的环境中使用 Docker。

这个过程虽然没有网络和 root 权限,但通过离线安装包和一些技巧,我们成功绕过了这些限制,并使 Docker 在用户空间正常工作。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward