浅谈部署工具——写给完全零基础的初学者

不想写日报
2025-06-27 12:33
阅读 300

开篇:什么是部署工具?

如果你刚开始接触编程或者软件开发,可能对“部署”这个词不太熟悉。没关系,我们先从最简单的角度来理解它。

想象一下你做了一个小蛋糕,做好之后当然要把它端到餐桌上让大家尝一尝,对吧?在开发领域,“部署”就是把这个“做好的程序”,放到一个可以让别人访问的地方去,比如一台服务器、云端或者本地计算机上。

而“部署工具”,就是帮助你把程序快速、安全、稳定地“送到餐桌”的那一套工具。

部署工具有什么用?

  • 把代码变成可运行的服务(比如网页、小程序)
  • 自动化流程(不用手动点击很多按钮)
  • 提高效率(让你的代码更快上线)
  • 管理配置和环境(确保每台机器都能正常运行你的程序)

常见的部署工具有:

  • Docker
  • Nginx
  • Jenkins
  • Ansible
  • Kubernetes

别被这些名字吓到!我们今天会从最简单的开始讲起,保证你能看得懂!


环境准备:搭建属于你的第一个开发环境

在真正使用部署工具之前,我们需要先准备好一台“厨房” —— 也就是你的电脑上的一套开发环境。

第一步:安装操作系统相关依赖

如果你是 Windows 用户:

  • 推荐使用 Windows 10/11 + WSL2(Windows Subsystem for Linux)
  • 安装方法很简单,打开 PowerShell,输入以下命令:
wsl --install

如果你是 Mac 或 Linux 用户,则可以直接跳过这一步,因为系统已经内置了类 Unix 环境。

第二步:安装常用工具

我们要用到几个工具来辅助部署,它们分别是:

工具名 功能说明
Git 用来管理代码版本
Docker 容器化部署工具
Node.js 用来运行 JavaScript 项目

安装 Git

在终端中运行:

sudo apt update && sudo apt install git -y   # Ubuntu/Debian
brew install git                          # macOS

安装 Docker

对于 Linux 用户:

sudo apt update && sudo apt install docker.io -y

对于 macOS 或 Windows 用户,请前往 https://www.docker.com/products/docker-desktop 下载并安装 Docker Desktop。

安装 Node.js

sudo apt install nodejs npm -y     # Linux
brew install node                  # macOS

验证是否安装成功:

node -v
npm -v
docker --version
git --version

如果都输出了版本号,恭喜你,环境已经搭好啦!


核心概念:通俗讲解部署相关的术语

为了更好地使用部署工具,我们需要了解一些基本的概念。别担心,我们会用最通俗的语言来解释。

1. 什么是容器?

容器就像一个打包好了的“小房间”。你可以把你写的代码和它需要的所有软件一起打包到这个“房间里”,然后在任何地方轻松地把这个“房间”搬过去使用。

举个例子:

如果你写了一个 Web 应用,需要用到 Node.jsMongoDB,那么你可以做一个容器镜像,里面包含了这两个东西。这样不管你在哪台机器上运行,都可以直接使用,不需要重新安装一堆软件。

常见工具:Docker


2. 什么是镜像?

镜像就是容器的模板。可以理解为“房间的图纸”。当你需要新建一个“房间”,就可以根据这张图纸来快速复制一个出来。

你可以把自己做的镜像发布到网上,也可以从网上下载别人做好的镜像。


3. 什么是 CI/CD?

CI/CD 是一种自动化流程,帮助你自动测试代码、打包、部署。

  • CI = Continuous Integration(持续集成):自动合并代码、跑测试
  • CD = Continuous Deployment(持续交付):自动部署到服务器上

你可以理解成“厨房机器人”,每次你做完一道菜(写完代码),它就会自动帮你洗盘子、试吃、装盘、上桌。


4. 什么是服务(Service)?

服务是指一段可以在后台长时间运行的程序。比如:

  • 一个网页服务器(Web Server)
  • 数据库服务(MySQL)
  • 消息队列服务(Redis)

这些服务都需要被正确启动、配置和维护。


5. 什么是编排工具?

当你的应用越来越复杂,有很多服务要同时运行时,就需要一个“指挥官”来帮你管理这些服务。这就是编排工具的作用。

常用的编排工具包括:

  • Docker Compose:适合小型项目
  • Kubernetes(K8s):适合大型项目

实战项目:用 Docker 部署一个简单网页应用

现在我们来动手实践,用 Docker 部署一个最简单的静态网页项目。

步骤 1:创建一个 HTML 文件夹

首先,建立一个文件夹存放我们的网页:

mkdir mywebsite
cd mywebsite

在里面新建一个 index.html 文件:

<!DOCTYPE html>
<html>
<head>
    <title>我的第一个部署项目</title>
</head>
<body>
    <h1>你好,世界!</h1>
    <p>这是我的第一个通过 Docker 部署的网页。</p>
</body>
</html>

步骤 2:编写 Dockerfile

创建一个名为 Dockerfile 的新文件:

touch Dockerfile

编辑内容如下:

FROM nginx:latest
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

这个文件的意思是:

  • 使用官方最新的 Nginx 镜像作为基础
  • 把我们写的 HTML 文件复制进去
  • 开放 80 端口供外部访问
  • 运行 Nginx 服务

步骤 3:构建镜像

执行命令:

docker build -t mywebapp .

等待完成后,输入以下命令查看镜像:

docker images

你会看到一个叫 mywebapp 的镜像。

步骤 4:运行容器

现在,让我们运行这个镜像:

docker run -d -p 8080:80 mywebapp

参数含义:

  • -d 表示后台运行
  • -p 8080:80 表示将本机的 8080 端口映射到容器的 80 端口

步骤 5:访问网页

打开浏览器,输入:

http://localhost:8080

你将会看到刚才写的网页页面:


示例截图

太棒了!你现在学会了如何用 Docker 来部署一个网页项目!


常见问题:新手容易踩的坑和解决办法

❓Q1:为什么我运行 Docker 命令的时候报错“Permission denied”?

答:这是因为你需要权限才能运行 Docker 命令。解决方式是将当前用户添加到 docker 组中:

sudo usermod -aG docker $USER

然后重启电脑或终端。


❓Q2:为什么我访问不到我部署的网站?

答:请检查以下几点:

  • 是否正确映射了端口(如 -p 8080:80
  • 是否有防火墙阻挡了端口
  • 是否有其他进程占用了相同端口
  • 容器是否真的在运行(可以用 docker ps 查看)

❓Q3:Dockerfile 中的 CMD 和 RUN 有什么区别?

答:

类型 描述
RUN 构建镜像时执行命令(比如安装软件)
CMD 运行容器时默认执行的命令(比如启动服务)

❓Q4:能不能不写 Dockerfile,直接部署?

答:当然可以,Docker 支持“临时运行已有的镜像”:

docker run -d -p 8080:80 nginx

但如果你想自定义内容(比如加自己的网页),还是建议写 Dockerfile。


学习建议:下一步该学什么?

你已经完成了一个部署项目的实战操作,接下来可以按照下面这个路线继续深入学习:

初级阶段(推荐学习)

技能方向 工具 目标
容器化部署 Docker 熟练掌握镜像制作与容器运行
编译与包管理 Dockerfile、Makefile 学会打包项目
环境管理 .env 文件、Docker Compose 控制多个服务协同工作

中级阶段(进阶)

技能方向 工具 目标
自动化部署 Jenkins、GitHub Actions 每次提交代码就自动部署
多服务管理 Docker Compose 同时管理多个容器
云平台部署 AWS EC2、阿里云ECS、腾讯云CVM 部署到真实服务器

高级阶段(职业路径)

技能方向 工具 目标
集群管理 Kubernetes (K8s) 大规模应用管理
DevOps Ansible、Terraform 自动化运维+基础设施即代码
云原生架构设计 Service Mesh、Istio 构建现代分布式系统架构

结语

到这里,你应该已经明白了部署的基本概念,并且完成了第一个部署项目。别急着跳过这些基础知识,它们是你未来成长为一名专业开发者的重要基石。

记住一句话:

部署不是终点,而是连接代码与用户的桥梁。

保持好奇,继续实践,你就能一步步走向更广阔的技术世界!


如果你喜欢这篇教程,欢迎分享给更多刚入门的朋友,也欢迎继续关注后续专题《从部署到 DevOps 全流程》系列文章 😄

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝