SSH 服务部署 + Docker(指定版本)完整安装 的一体化操作流程

SSH 服务部署 + Docker(指定版本)完整安装 的一体化操作流程(适配 Ubuntu 24.04,全程权限 / 兼容性优化,可直接复制批量执行):

核心说明

  • 整合 SSH 安装、Docker 指定版本(28.0.0)+ docker-compose-plugin(2.32.1)安装
  • 适配 Ubuntu 24.04(Noble),自动兼容系统架构(x86/arm)
  • 每步带日志输出,便于排查问题
bash 复制代码
#!/bin/bash
set -e  # 遇到错误立即退出,避免后续无效操作

# ==============================================
# 阶段1:基础环境准备 & SSH服务部署
# ==============================================
echo -e "\033[32m===== 阶段1:基础环境准备 & SSH服务部署 =====\033[0m"

# 步骤1:查询系统版本(确认系统类型/版本,适配Docker源)
echo -e "\n===== 1.1 查询系统版本 ====="
lsb_release -a 2>/dev/null || cat /etc/os-release
UBUNTU_CODENAME=$(lsb_release -cs 2>/dev/null || grep VERSION_CODENAME /etc/os-release | cut -d= -f2)
echo "当前Ubuntu版本代号:${UBUNTU_CODENAME}"

# 步骤1.2:更新系统软件源(确保包最新)
echo -e "\n===== 1.2 更新软件源 ====="
sudo apt update -y

# 步骤1.3:安装net-tools(兼容netstat端口查询)
echo -e "\n===== 1.3 安装net-tools工具包 ====="
sudo apt install net-tools -y

# 步骤1.4:安装OpenSSH服务端
echo -e "\n===== 1.4 安装OpenSSH服务端 ====="
sudo apt install openssh-server -y

# 步骤1.5:启动SSH服务 + 设置开机自启
echo -e "\n===== 1.5 启动并设置SSH开机自启 ====="
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh --no-pager

# 步骤1.6:验证SSH端口监听(双工具验证)
echo -e "\n===== 1.6 验证SSH端口监听 ====="
sudo ss -tnlp | grep ssh
sudo netstat -tnlp | grep ssh
ss -tuln | grep -E '22|ssh'

# 步骤1.7:防火墙放行SSH端口(关键)
echo -e "\n===== 1.7 防火墙放行SSH 22端口 ====="
sudo ufw status 2>/dev/null || echo "ufw未安装,跳过放行"
sudo ufw allow 22/tcp 2>/dev/null
sudo ufw reload 2>/dev/null

# 步骤1.8:SSH最终验证
echo -e "\n===== 1.8 SSH最终验证 ====="
echo "SSH服务状态:$(sudo systemctl is-active ssh)"
echo "SSH开机自启:$(sudo systemctl is-enabled ssh)"
echo "SSH监听端口:$(sudo ss -tnlp | grep ssh | awk '{print $4}')"

# ==============================================
# 阶段2:Docker(指定版本)+ docker-compose-plugin 安装
# ==============================================
echo -e "\n\n\033[32m===== 阶段2:Docker指定版本安装 =====\033[0m"

# 步骤2.1:安装Docker依赖包
echo -e "\n===== 2.1 安装Docker依赖 ====="
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 步骤2.2:添加Docker官方GPG密钥(适配新版APT密钥存储)
echo -e "\n===== 2.2 添加Docker GPG密钥 ====="
sudo mkdir -p /etc/apt/trusted.gpg.d
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg

# 步骤2.3:添加Docker APT源(适配当前Ubuntu版本)
echo -e "\n===== 2.3 添加Docker APT源 ====="
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu ${UBUNTU_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 步骤2.4:更新APT缓存(使Docker源生效)
echo -e "\n===== 2.4 更新APT缓存 ====="
sudo apt-get update -y

# 步骤2.5:列出可安装的Docker版本(确认目标版本存在)
echo -e "\n===== 2.5 列出可安装的Docker CE版本 ====="
apt-cache madison docker-ce | grep 28.0.0

# 步骤2.6:安装指定版本Docker(28.0.0-1~ubuntu.24.04~noble)
echo -e "\n===== 2.6 安装Docker 28.0.0 ====="
DOCKER_VERSION="5:28.0.0-1~ubuntu.24.04~noble"
sudo apt-get install -y \
  docker-ce=${DOCKER_VERSION} \
  docker-ce-cli=${DOCKER_VERSION} \
  containerd.io

# 步骤2.7:设置Docker开机自启并启动服务
echo -e "\n===== 2.7 配置Docker服务 ====="
sudo systemctl enable docker
sudo systemctl enable containerd
sudo systemctl start docker
sudo systemctl status docker --no-pager

# 步骤2.8:列出可安装的docker-compose-plugin版本
echo -e "\n===== 2.8 列出可安装的docker-compose-plugin版本 ====="
apt-cache madison docker-compose-plugin | grep 2.32.1

# 步骤2.9:安装指定版本docker-compose-plugin(2.32.1)
echo -e "\n===== 2.9 安装docker-compose-plugin 2.32.1 ====="
COMPOSE_VERSION="2.32.1-1~ubuntu.24.04~noble"
sudo apt install -y docker-compose-plugin=${COMPOSE_VERSION}

# ==============================================
# 阶段3:最终验证(SSH + Docker)
# ==============================================
echo -e "\n\n\033[32m===== 阶段3:最终验证 =====\033[0m"

# SSH验证
echo -e "\n【SSH验证】"
echo "SSH服务状态:$(sudo systemctl is-active ssh)"
echo "SSH监听端口:$(sudo ss -tnlp | grep ssh | awk '{print $4}')"

# Docker验证
echo -e "\n【Docker验证】"
docker --version
docker compose version
sudo systemctl is-active docker
sudo systemctl is-enabled docker

# 最终提示
echo -e "\n\033[32m✅ 全部操作完成!\033[0m"
echo -e "1. SSH远程连接:ssh 用户名@服务器IP(默认端口22)"
echo -e "2. Docker验证命令:docker run --rm hello-world"
echo -e "3. Docker Compose使用:docker compose up -d"
相关推荐
Leinwin10 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825010 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇10 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.75911 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣11 小时前
智能体选型实战指南
运维·人工智能
yy552711 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ12 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔14 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密14 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi201514 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑