Docker手动安装Linux实战:从下载到运行容器的完整指
前置准备
在开始 Docker手动安装Linux 之前,请确保你的服务器满足以下条件:
- 任何主流 Linux 发行版(CentOS 7+、Ubuntu 16.04+、Debian 9+ 均可)
- 拥有 root 权限或能通过 sudo 提权
- 如果无法联网,请先在能联网的机器上下载好 Docker 二进制包(本文以 Docker 24.0.7 为例)
- 确认系统架构(x86_64 或 arm64),下载对应版本
分步操作
下面我们通过“下载→解压→放置二进制→配置服务→启动”五个环节完成 Docker手动安装Linux。
1. 下载 Docker 二进制包
在能联网的机器上(或者直接在服务器有网络时)执行:
# 下载 x86_64 版本(如果服务器是 ARM,请替换为 darwin-arm64 或 linux-arm64)
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz如果服务器无网络,请用 U 盘等介质将 .tgz 文件传入服务器任意目录,如 /opt。
2. 解压并放置文件
# 解压
tar -xvf docker-24.0.7.tgz
将解压后的 docker 目录中所有二进制文件复制到 /usr/bin
sudo cp docker/* /usr/bin/
注意:不要直接复制整个docker目录,只复制bin下的可执行文件到系统路径。
3. 配置 systemd 服务
为了让 Docker 能开机自启,需要手动创建服务文件。
# 创建 docker.service 文件
sudo tee /etc/systemd/system/docker.service <
[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
4. 加载服务并启动
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker检查状态:
sudo systemctl status docker看到 active (running) 即表示 Docker手动安装Linux 成功。
避坑指南
- 权限问题:如果非 root 用户执行
docker ps报错permission denied,请将用户加入docker组:sudo usermod -aG docker $USER,然后重新登录。 - 依赖缺失:部分旧系统缺少
iptables,运行sudo yum install -y iptables或sudo apt install -y iptables。 - 端口冲突:如果 80/443 端口已被占用,Docker 内置的 zfs 或 overlay2 驱动可能受影响,检查
/var/log/docker.log。 - 二进制版本不对:下载前确认
uname -m,避免 arm64 机器用了 x86_64 版本。
效果验证
运行 hello-world 镜像测试:
sudo docker run hello-world如果看到一段“Hello from Docker!
”的英文消息,说明安装无误。
如果镜像拉取失败(无网络环境下),请先用联网机器拉取后导出:docker save hello-world -o hello.tar,然后导入到离线服务器:docker load -i hello.tar。
高频问题解答
- Q1:手动安装后如何更新 Docker? 只需下载新版本二进制包,重复“解压→复制”步骤,然后
sudo systemctl restart docker。 - Q2:如何完全卸载手动安装的 Docker?
sudo rm -f /usr/bin/docker* /usr/bin/containerd* /usr/bin/runc,删除服务文件sudo rm /etc/systemd/system/docker.service,再sudo systemctl daemon-reload。 - Q3:手动安装后无法使用 docker-compose?
docker-compose是独立工具,需另外下载(如wget https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)并赋予执行权限)。
如果你正在处理 Docker手动安装Linux,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。