Linux 离线部署 Docker 18.06.3 终极指南(附一键安装/卸载脚本)
摘要:本文针对无外网环境的 Linux 服务器,提供基于二进制包的 Docker 18.06.3 离线安装全流程指南。包含自动化脚本设计、服务配置优化及安全卸载方案,解决企业内网、隔离环境下的容器化部署难题。
一、离线安装原理与准备
1.1 方案优势分析
- 无需网络:基于静态二进制包(
.tgz
)脱离在线依赖 - 快速部署:通过 Shell 脚本实现一键安装/卸载
- 版本可控:锁定 Docker 18.06.3 稳定版,避免兼容性问题
1.2 环境要求
项目 | 最低要求 |
---|---|
操作系统 | CentOS 7+/Ubuntu 16+ |
内核版本 | ≥ 3.10(推荐 4.x) |
系统架构 | x86_64 |
磁盘空间 | ≥ 500MB |
二、离线安装全流程实战
2.1 获取安装包
从官方仓库下载对应版本(直达链接):
# 文件名称
docker-18.06.3-ce.tgz
2.2 上传文件到服务器
通过 SCP/U盘/内网传输将以下文件上传至目标服务器:
docker-18.06.3-ce.tgz
docker.service
(系统服务文件)install.sh
(安装脚本)
2.3 脚本解析与执行
安装脚本 install.sh
#!/bin/sh
echo '解压tar包'
tar -xvf docker-18.06.3-ce.tgz
echo '将docker目录下所有文件复制到/usr/bin目录'
cp docker/* /usr/bin
echo '将docker.service 复制到/etc/systemd/system/目录'
cp docker.service /etc/systemd/system/
echo '添加文件可执行权限'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件'
systemctl daemon-reload
echo '启动docker'
systemctl start docker
echo '设置开机自启'
systemctl enable docker.service
echo '======= 安装完成 ======='
docker -v
服务文件 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
TimeoutSec=0
RestartSec=2
Restart=always
[Install]
WantedBy=default.target
执行安装
# 授权并执行
chmod +x install.sh docker.service
./install.sh
预期输出:
Docker version 18.06.3-ce, build d7080c1
三、安装后验证与调优
3.1 基础功能测试
# 查看服务状态
systemctl status docker
# 运行测试容器
docker run --rm hello-world
成功输出 Hello from Docker!
表示安装正确。
3.2 安全加固配置(可选)
编辑 /etc/docker/daemon.json
:
{
"userns-remap": "default",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"live-restore": true
}
重启服务生效:
systemctl restart docker
四、彻底卸载 Docker
4.1 卸载脚本 uninstall.sh
#!/bin/sh
echo '停止docker服务'
systemctl stop docker
echo '删除docker.service'
rm -f /etc/systemd/system/docker.service
echo '删除二进制文件'
rm -rf /usr/bin/docker* /usr/bin/containerd* /usr/bin/runc
echo '清理数据目录(谨慎操作!)'
rm -rf /var/lib/docker
echo '重新加载systemd'
systemctl daemon-reload
echo '======= 卸载完成 ======='
4.2 执行卸载
chmod +x uninstall.sh
./uninstall.sh
五、常见问题与解决方案
Q1:安装后 docker ps
无权限
报错:Got permission denied while trying to connect to the Docker daemon socket
解决:
sudo usermod -aG docker $USER && newgrp docker
Q2:服务启动失败
排查命令:
journalctl -u docker.service --since "10 minutes ago"
Q3:镜像存储路径更改
编辑 /etc/docker/daemon.json
:
{
"data-root": "/new/path/to/docker"
}
六、性能优化建议
-
存储驱动选择
# 查看当前驱动 docker info | grep "Storage Driver"
- 推荐:
overlay2
(需内核≥4.x)
- 推荐:
- 旧版系统:
devicemapper
- 日志轮转配置
{ "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } }
扩展工具推荐:Portainer 可视化容器管理工具
如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!欲了解密码学知识,请订阅《密码学实战》专栏 → 密码学实战