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/shecho '解壓tar包'
tar -xvf docker-18.06.3-ce.tgzecho '將docker目錄下所有文件復制到/usr/bin目錄'
cp docker/* /usr/binecho '將docker.service 復制到/etc/systemd/system/目錄'
cp docker.service /etc/systemd/system/echo '添加文件可執行權限'
chmod +x /etc/systemd/system/docker.serviceecho '重新加載配置文件'
systemctl daemon-reloadecho '啟動docker'
systemctl start dockerecho '設置開機自啟'
systemctl enable docker.serviceecho '======= 安裝完成 ======='
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/shecho '停止docker服務'
systemctl stop dockerecho '刪除docker.service'
rm -f /etc/systemd/system/docker.serviceecho '刪除二進制文件'
rm -rf /usr/bin/docker* /usr/bin/containerd* /usr/bin/runcecho '清理數據目錄(謹慎操作!)'
rm -rf /var/lib/dockerecho '重新加載systemd'
systemctl daemon-reloadecho '======= 卸載完成 ======='
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 可視化容器管理工具
如果本教程幫助您解決了問題,請點贊??收藏?關注支持!歡迎在評論區留言交流技術細節!欲了解密碼學知識,請訂閱《密碼學實戰》專欄 → 密碼學實戰