Docker 离线安装(非 root 用户)教程
这篇文档将详细介绍如何在没有 root 权限和没有网络的 CentOS 系统上,完成 Docker 的离线安装,并为小白提供清晰的步骤。我们将给出每个步骤的详细说明以及一键安装脚本,确保你能够顺利完成安装。
安装前准备
-
你需要具备的权限:
- 你不需要
root
权限,但需要一定的用户权限来操作文件和创建目录。
- 你不需要
-
你需要的资源:
- 一台有网络连接的云主机或其他 Linux 系统来下载 Docker 离线安装包。
- 一个 U 盘或其它方式来传输文件。
- 离线安装包传输到目标 CentOS 系统中。
步骤 1:在有网络的机器上下载 Docker 离线包
首先,我们需要在一台有网络的机器(如云主机)上下载 Docker 离线安装包,然后通过 U 盘或其他方式将其传输到目标 CentOS 服务器。
-
更新和安装必需工具
打开终端,运行以下命令,确保你的系统有最新的依赖包:
sudo yum update -y sudo yum install -y wget curl
-
下载 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
下载链接。然后,你可以使用
wget
或curl
来下载文件:wget https://download.docker.com/linux/centos/x86_64/stable/Packages/docker-ce-
.rpm -
传输 Docker 离线安装包
将下载的
.rpm
文件传输到目标 CentOS 系统。你可以使用scp
,U 盘,或者其它方式来传输文件。示例使用
scp
将文件从云主机传输到目标 CentOS 系统:scp docker-ce-
.rpm youruser@yourcentos:/home/youruser/docker/
步骤 2:安装 Docker(非 root 用户)
在目标 CentOS 系统上,我们将使用非 root 用户安装 Docker。
-
切换到文件所在目录
登录到 CentOS 系统后,切换到 Docker 离线安装包所在的目录:
cd /home/youruser/docker
-
安装 Docker 离线包
由于没有 root 权限,我们将 Docker 安装到用户的本地目录。使用
rpm
命令来安装 Docker.rpm
包,并通过--nodeps
跳过对依赖的检查:rpm -ivh docker-ce-
.rpm --nodeps --prefix=$HOME/.local/ -
创建 Docker 相关目录
安装完成后,我们需要为 Docker 创建必要的目录:
mkdir -p $HOME/.local/docker
-
设置 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 守护进程,并通过环境变量与其进行通信。
-
启动 Docker 守护进程
使用以下命令在用户空间启动 Docker 守护进程:
nohup $HOME/.local/bin/dockerd --host=unix:///home/youruser/.local/docker/docker.sock &
-
启动 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 安装成功"
使用方法
-
将上面的脚本保存为
install_docker.sh
文件。 -
给脚本添加执行权限:
chmod +x install_docker.sh
-
运行脚本:
./install_docker.sh
运行脚本后,Docker 会自动安装并启动。
总结
通过以上步骤,你可以在没有 root 权限和网络连接的 CentOS 系统上,使用离线包成功安装 Docker。通过设置 Docker 环境变量和手动启动 Docker 守护进程,你就可以在没有 root 权限的环境中使用 Docker。
这个过程虽然没有网络和 root 权限,但通过离线安装包和一些技巧,我们成功绕过了这些限制,并使 Docker 在用户空间正常工作。