Docker手动安装Linux:Linux服务器上如何手动安

Linux服务器上如何手动安装Docker?从下载到运行全步骤


很多运维场景下服务器不能直接访问外网,或者你希望精确控制安装版本。Docker手动安装Linux 就是指通过二进制包或离线包来部署Docker,而不依赖系统的包管理器。

本文会手把手带你走完整个流程,即使你是第一次接触Linux也能跟着完成。


前置准备


在开始操作前,请确认以下条件已满足:



  • 一台Linux服务器,本文以CentOS 7 / Ubuntu 20.04为例,其他发行版类似。

  • 有root权限,或者使用sudo提权。

  • 已离线准备好Docker安装包:从 Docker官方GitHub Release 下载 docker-<版本>-<架构>.tar.gz(例如 docker-20.10.17-ce.tgz)。

  • 可选:配置好本地的离线仓库或scp工具,以便传输文件。


如果服务器完全断网,你需要在有网的机器上下载好包,再用U盘或内网传输工具拷过去。


分步操作


第一步:检查系统依赖


Docker依赖一些内核模块和工具,先安装基础依赖:


# CentOS/RHEL
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Ubuntu/Debian

sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common


如果完全离线,这些依赖也需要提前下载。这里假定你的服务器至少有yum/apt的离线仓库。

第二步:解压并安装Docker二进制


将下载的 docker-*.tgz 上传到服务器的 /tmp 目录,然后执行:


tar -xzvf /tmp/docker-*.tgz -C /tmp/
sudo cp /tmp/docker/* /usr/bin/

这样就把docker、docker-containerd等所有二进制文件复制到了系统PATH下。


第三步:配置systemd服务(可选但推荐)


为了让Docker守护进程随系统启动,需要创建systemd单元文件。


sudo tee /etc/systemd/system/docker.service > /dev/null <
[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


接着加载并启动:


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

第四步:验证Docker是否运行


docker version

应该显示Client和Server版本信息

docker run hello-world

如果无法拉取镜像(离线环境)可能会失败,但本地命令会显示正确

如果你是从其他机器拷贝了 hello-world.tar 镜像,可以提前导入:


docker load -i /path/to/hello-world.tar
docker run hello-world

避坑指南



  1. 依赖缺失导致启动失败dockerd 启动时报 “No such file or directory” 或关于“runc”的错误,通常是系统缺失 libltdl7 等库。在CentOS上执行 yum install -y libtool-ltdl,Ubuntu上执行 apt install libltdl7

  2. selinux干扰:如果容器启动被拒绝,检查selinux是否启用。临时关闭:setenforce 0,或配置selinux策略。

  3. 防火墙规则:Docker会修改iptables,若你的环境有自定义防火墙,可能造成冲突。启动Docker前建议先清空规则(仅测试环境)。

  4. 二进制版本与内核不匹配:下载的Docker版本较新而内核较旧,可能导致cgroups功能异常。建议下载与操作系统官方提供版本相近的Docker。


高频问题解答


Q1:手动安装后能用 docker-compose 吗?

A:可以。docker-compose 是一个独立的Python脚本或Go二进制,需要额外下载。从GitHub Release下载对应架构的二进制,放到 /usr/local/bin/docker-compose 并赋予执行权限即可。


Q2:离线环境如何获取镜像?

A:在有网的机器上 docker pull <镜像>,然后 docker save -o <文件名.tar> <镜像>,再把tar包传到目标服务器用 docker load 导入。


Q3:启动Docker后 docker ps 报权限错误?

A:当前用户不在docker组中。解决方法:sudo usermod -aG docker $USER,然后注销重新登录。或者始终用sudo执行。


Q4:手动安装后如何更新版本?

A:停止docker服务(systemctl stop docker),重新下载新版二进制到 /usr/bin 覆盖,再启动服务。注意数据库和容器数据存储在 /var/lib/docker,更新不会丢失。


效果验证


完成上述步骤后,可以执行以下命令确认 Docker手动安装Linux 成功:


# 查看Docker进程是否运行
ps aux | grep dockerd

查看版本信息

docker info | grep -i server

运行一个自定义容器(假设本地已有busybox镜像)

docker run --rm busybox echo "Docker works!"


如果看到类似 Server Version: 20.10.17 的输出,并且容器能打印消息,就说明安装完全正确。


如果你正在处理 Docker手动安装Linux,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
宝塔面板11.7.0一键安装教程:从零开始轻松部署网站环境
下一篇
宝塔面板文件管理技巧:零基础也能高效操作网站文件
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意