从 Linux 基础到远程部署:6 天 DevOps 基础项目

发布: (2026年2月18日 GMT+8 17:30)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Overview

我决定通过构建一个结构化的 6 天实战项目系列来强化我的 DevOps 基础。到本周结束时,我已经实现了远程 Ubuntu EC2 实例的自动化配置、Flask 应用的容器化、Nginx 作为反向代理的配置,并通过一个脚本完成了全部部署。

Environment

  • Ubuntu(本地和 EC2)
  • Bash
  • Docker
  • Docker Compose
  • Nginx
  • AWS EC2
  • SSH 与 SCP

Day 1: Linux Essentials

Topics

  • 文件权限
  • 服务与 systemctl
  • 日志检查
  • 基本系统命令

Exercise

编写了一个 Bash 脚本,用于检查磁盘使用率、内存使用率和系统运行时间。这迫使我对底层命令有更深入的理解,而不是仅仅执行它们。

Day 2: Bash Scripting

Topics

  • 变量
  • 循环
  • 条件语句
  • 日志记录
  • 基本错误处理

Exercise

创建了一个脚本,能够在 Ubuntu 服务器或容器上自动安装 Docker、Git 和 Nginx。此脚本将手动、重复的任务转化为一键自动化。

Day 3: Docker Fundamentals

Steps

  1. 将一个简单的 Flask 应用容器化。
  2. 编写 Dockerfile
  3. 构建镜像。
  4. 在本地运行容器。

Insight

该练习阐明了容器如何打包应用,以及它们的运行时行为与直接在宿主机上运行应用的区别。

Day 4: Docker Compose and Nginx

Setup

  • docker-compose.yml 中定义了两个服务:一个用于 Flask,另一个用于 Nginx。
  • 启用了内部网络,使容器之间能够通信。
  • 配置 Nginx 作为反向代理,将请求路由到 Flask 服务。
  • 添加了健康检查以验证服务可用性。

Insight

看到流量通过反向代理的过程,使网络部分的概念更加清晰,并展示了容器内部的通信方式。

Day 5: SSH Automation

Tasks

  • 通过 SSH 安全连接到远程 Ubuntu 服务器。
  • 使用 SCP 传输脚本。
  • 在远程执行脚本。
  • 管理权限和环境变量。

Insight

此步骤将本地自动化与真实基础设施关联起来,使项目从理论走向实际的远程执行。

Day 6: Full Deployment

Combined Script

最终脚本在远程 EC2 Ubuntu 实例上执行以下操作:

  1. 通过 SSH 连接。
  2. 安装 Docker 和 Git。
  3. 构建 Flask 容器。
  4. 配置 Nginx 作为反向代理。

执行完毕后,应用即可通过实例的公网 IP 访问。

Repository

https://github.com/amilola/30Days-Devops/tree/main/Phase1

0 浏览
Back to Blog

相关文章

阅读更多 »

Agentic AI 现状报告:关键发现

基于 Docker 的 State of Agentic AI 报告 https://www.docker.com/resources/the-state-of-agentic-ai-white-paper/,对全球超过 800 名开发者的调查,...