离线环境安装 Docker 完整指南
概述
在离线服务器环境中安装 Docker 需要一些额外步骤。本文将详细介绍如何使用离线包在 Linux 系统上安装 Docker。
准备工作
1. 下载离线包
首先需要在有网络的环境中下载 Docker 离线安装包:
wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz2. 传输到目标服务器
将下载的 docker-26.1.4.tgz 文件传输到目标离线服务器。
安装步骤
步骤1:解压安装包
tar -xvf docker-26.1.4.tgz步骤2:复制二进制文件到系统目录
cp ./docker/* /usr/bin这将复制所有 Docker 相关的可执行文件到 /usr/bin 目录。
步骤3:创建 systemd 服务文件
vim /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
# 默认不使用 systemd 管理 cgroups
# 因为委托问题仍然存在,且 systemd 当前不支持 Docker 容器所需的 cgroup 功能集
ExecStart=/usr/bin/dockerd --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
# 非零 Limit* 设置会因为内核中的记账开销导致性能问题
# 建议使用 cgroups 进行容器本地记账
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# 如果系统支持 TasksMax 可取消注释(需要 systemd 226 及以上版本)
#TasksMax=infinity
TimeoutStartSec=0
# 设置 delegate=yes 让 systemd 不重置 Docker 容器的 cgroups
Delegate=yes
# 只杀死 Docker 进程,不杀死 cgroup 中的所有进程
KillMode=process
# 如果 Docker 进程异常退出则重启
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target重要提示:如果服务器有多个网络接口,可能需要修改启动参数:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --selinux-enabled=false步骤4:设置文件权限
chmod +x /etc/systemd/system/docker.service步骤5:启动 Docker 服务
# 重新加载 systemd 配置
systemctl daemon-reload
# 启动 Docker 服务
systemctl start docker
# 设置开机自启
systemctl enable docker.service
# 检查服务状态
systemctl status docker验证安装
# 检查 Docker 版本
docker --version
# 运行测试容器
docker run hello-world常见问题解决
1. 权限问题
如果遇到权限错误,将用户添加到 docker 组:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker2. SELinux 问题
如果系统启用了 SELinux,确保在服务配置中禁用了 SELinux:
ExecStart=/usr/bin/dockerd --selinux-enabled=false3. 网络配置
如果需要 Docker 监听 TCP 端口,修改 ExecStart:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock卸载 Docker
如果需要卸载,执行以下命令:
# 停止服务
systemctl stop docker
# 禁用服务
systemctl disable docker.service
# 删除二进制文件
rm -f /usr/bin/docker*
# 删除服务文件
rm -f /etc/systemd/system/docker.service
# 重新加载 systemd
systemctl daemon-reload总结
通过以上步骤,您可以在离线环境中成功安装和配置 Docker。这种安装方式特别适用于生产环境、内网服务器或网络受限的场景。记得根据实际需求调整服务配置参数。
评论已关闭