docker离线安装

avatar 2026年7月19日09:39:43 评论 11 次浏览

一、准备工作:确认架构并下载安装包

1.1 确认目标服务器架构

在目标服务器上执行以下命令,确认系统架构:

uname -m
  • 输出 x86_64:对应 amd64 架构(Intel/AMD 64位服务器)

  • 输出 aarch64:对应 arm64 架构(如树莓派4B、ARM云服务器等)

1.2 在有网络的环境下载二进制包

访问 Docker 官方静态二进制下载地址: https://download.docker.com/linux/static/stable/

根据上一步确认的架构,进入对应目录下载 .tgz 压缩包:

服务器架构 下载目录
amd64 (x86_64) x86_64/
arm64 (aarch64) aarch64/

推荐下载最新稳定版本,例如 docker-28.4.0.tgz(版本号请以实际为准)。

1.3 将安装包上传至离线服务器

使用 U 盘、scp、FTP 等方式将下载的 .tgz 文件上传到目标服务器的任意目录,例如 /home/your_user/docker-install/


二、安装 Docker

2.1 解压二进制包

wget https://download.docker.com/linux/static/stable/aarch64/docker-29.6.2.tgz
tar -xzvf docker-*.tgz

解压后会得到一个 docker/ 目录,其中包含 dockerd(守护进程)和 docker(客户端)等可执行文件。

2.2 拷贝到系统路径

将二进制文件拷贝到 /usr/bin/ 目录,让系统可以直接识别这些命令:

sudo cp docker/* /usr/bin/

如果不想使用 sudo,也可以拷贝到用户自己的 ~/bin/ 目录(需确保该目录在 PATH 环境变量中)。

2.3 创建 systemd 服务(推荐)

为了让 Docker 开机自启并以服务形式运行,需要创建 systemd 服务文件。在 /etc/systemd/system/ 下创建 docker.service 文件:

sudo tee /etc/systemd/system/docker.service > /dev/null << 'EOF'
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
EOF

2.4 启动 Docker 服务

sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker

2.5 验证安装

sudo docker version

如果能正常显示客户端和服务端的版本信息,说明安装成功。


三、配置普通用户使用 Docker(核心步骤)

默认情况下,Docker 守护进程的 Unix 套接字 /var/run/docker.sock 只有 root 用户有权限访问,因此普通用户执行 docker 命令需要加 sudo

要实现普通用户免 sudo 使用 Docker,需要将用户加入 docker 用户组。

3.1 创建 docker 用户组(如果不存在)

sudo groupadd docker

3.2 将当前用户加入 docker 组

sudo usermod -aG docker $USER

3.3 刷新组成员身份

有两种方式使组变更生效:

  • 方法一:退出当前 SSH 会话并重新登录

  • 方法二:执行以下命令:

newgrp docker

3.4 验证普通用户权限

执行以下命令,确认不再需要 sudo

docker version
docker run hello-world

如果 hello-world 容器正常输出欢迎信息,说明普通用户已成功获取 Docker 使用权限。


四、清理与卸载

如需卸载离线安装的 Docker,执行以下步骤:

sudo systemctl stop docker
sudo systemctl disable docker
sudo rm -f /etc/systemd/system/docker.service
sudo rm -rf /usr/bin/docker*
sudo rm -rf /usr/bin/containerd*
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo systemctl daemon-reload

如需同时移除用户组中的用户,可执行:

sudo gpasswd -d $USER docker

五、注意事项

  1. 安全提示docker 用户组拥有与 root 用户同等的权限,请仅将可信用户加入该组。

  2. 生产环境建议:官方文档指出,静态二进制安装不会自动获得安全更新,建议生产环境优先使用包管理器在线安装。离线安装多用于测试或网络受限的内网环境。

  3. 关于 ~/.docker/ 目录权限:如果此前使用 sudo 执行过 docker 命令,可能会因权限问题导致警告。可通过以下命令修复:

    sudo chown "$USER":"$USER" "$HOME/.docker" -R
    sudo chmod g+rwx "$HOME/.docker" -R
avatar
  • 未经博主允许,禁止转载本博客任何内容,如需转载请留言,谢谢合作!!!
  • 转载注明:docker离线安装 | 吴老二

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: