从零到一:手把手带你用 Docker 部署你的第一个项目,视频+实操全解析

为什么我劝你早点学会 Docker 部署?

如果你还在为“本地跑得好好的,上线就报错”而抓狂,或者每次部署新环境都要手动安装一堆依赖、配置各种路径,那么 Docker 就是你的救星。它把整个应用及其运行环境打包成一个“集装箱”,无论到哪台服务器,只要执行一条命令,就能瞬间跑起来。今天这篇文章,我会结合视频中演示的完整流程,带你从零开始,亲手搞定一次真实的 Docker 部署。

第一步:准备工作——你得有台服务器

巧妇难为无米之炊。在开始之前,你需要一台能联网的云服务器。如果你还没有,建议直接选择国内主流云厂商的轻量应用服务器,新用户通常几十块钱就能买一年,配置选 2核 2G 就足够跑大多数个人项目。购买时注意选择 CentOS 7.9+ 或 Ubuntu 20.04+ 系统,这两个系统对 Docker 的支持最稳定。

另外,记得在服务器安全组/防火墙中提前开放常用端口:80(HTTP)、443(HTTPS)、22(SSH),以及你项目实际使用的端口(比如 8080、3000 等)。

第二步:SSH 连接服务器 & 安装 Docker

打开你电脑上的终端(Windows 用户推荐用 PowerShellWindows Terminal),输入以下命令连接服务器:

ssh root@你的服务器公网IP

输入密码后,你就进入了服务器命令行。接下来,我们一键安装 Docker(以 CentOS 为例):

curl -fsSL https://get.docker.com | bash -s docker

等待脚本自动执行完毕,大概需要一两分钟。安装完成后,启动 Docker 并设置开机自启:

systemctl start docker
systemctl enable docker

最后验证安装是否成功:

docker --version

如果看到类似 Docker version 24.0.7 的输出,恭喜你,Docker 已经就绪。

第三步:拉取项目镜像并运行容器

为了让你快速上手,我们用一个小型 Node.js 应用来做演示。首先,从 Docker Hub 拉取一个现成的 Nginx 镜像(最常用的 Web 服务器之一):

docker pull nginx:latest

然后,用这个镜像启动一个容器,并将服务器的 8080 端口映射到容器的 80 端口:

docker run -d --name my-nginx -p 8080:80 nginx:latest

参数解释:
-d:后台运行容器
–name:给容器起个名字
-p:端口映射,格式为 宿主机端口:容器端口

现在,打开浏览器,访问 http://你的服务器公网IP:8080,你应该能看到 Nginx 的默认欢迎页面。如果看到,说明 Docker 部署已经跑通!

第四步:部署你自己的项目(以 Vue.js 前端为例)

接下来,我们部署一个真正的前端项目。假设你本地有一个打包好的 dist 文件夹(通过 npm run build 生成),我们要把它放到 Nginx 容器里。

4.1 上传项目文件到服务器

在本地终端中,使用 scp 命令将 dist 文件夹上传到服务器:

scp -r ./dist root@你的服务器公网IP:/root/dist

4.2 编写 Dockerfile

在服务器上创建一个新目录,并进入:

mkdir my-project && cd my-project

将刚才上传的 dist 文件夹复制到这个目录下,然后创建一个名为 Dockerfile 的文件:

# 使用官方 Nginx 镜像作为基础
FROM nginx:latest

# 将本地 dist 文件夹复制到容器内的 Nginx 默认站点目录
COPY ./dist /usr/share/nginx/html

# 暴露 80 端口
EXPOSE 80

4.3 构建并运行自定义镜像

docker build -t my-vue-app .
docker run -d --name my-vue-app -p 80:80 my-vue-app

现在,直接访问你的服务器 IP(不加端口号,因为 80 是默认 HTTP 端口),你的项目就上线了!

第五步:进阶技巧——用 Docker Compose 管理复杂应用

如果你的项目包含后端、数据库、缓存等多个服务,手动一个个启动容器非常麻烦。这时就需要 Docker Compose。它允许你通过一个 docker-compose.yml 文件定义所有服务,然后一条命令全部启动。

先安装 Docker Compose(如果系统没自带的话):

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

下面是一个典型的 前端 + 后端 + MySQL 项目的 docker-compose.yml 示例:

version: '3.8'
services:
  frontend:
    build: ./frontend
    ports:
      - "80:80"
    depends_on:
      - backend
  backend:
    build: ./backend
    ports:
      - "3000:3000"
    environment:
      DB_HOST: mysql
      DB_USER: root
      DB_PASSWORD: 123456
    depends_on:
      - mysql
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - mysql-data:/var/lib/mysql
volumes:
  mysql-data:

在项目根目录执行 docker-compose up -d,所有服务就会自动启动并相互连接。是不是很方便?

常见问题与避坑提醒

问题 原因 解决办法
端口被占用 宿主机已有其他程序使用了同一端口 修改 -p 映射的宿主机端口,或先停掉冲突进程
容器启动后立即退出 应用内部报错,或没有前台进程 使用 docker logs <容器名> 查看错误日志
无法访问容器内的服务 防火墙未放行端口,或容器网络模式问题 检查云服务商安全组规则,确保对应端口已开放
镜像拉取速度极慢 默认使用 Docker Hub 海外源 配置国内镜像加速器(如阿里云、中科大源)

写在最后:让部署成为你的加分项

掌握了 Docker 部署,你就不再只是“写代码的人”。你可以自己掌控从开发到上线的全流程,甚至能为团队搭建自动化的 CI/CD 流水线。对于个人开发者来说,一台靠谱的云服务器 + Docker 就是最轻量、最稳定的项目上线方案。如果你还没有自己的服务器,不妨趁着促销入手一台,跟着上面的步骤动手练一遍。相信我,当你看到自己的项目在浏览器里流畅运行时,那种成就感远超任何教程的截图。

如果你在实际操作中遇到任何问题,欢迎在评论区留言交流。下一期视频,我会继续深入讲解如何用 Docker 部署带 HTTPS 证书的 Web 应用,敬请关注。

💡 【站长特惠服务推荐】

新手搭建网站或部署容器,推荐选择高性价比独享云服务器。点击下方通道可享受限时折扣与专属优惠券:

👉 点此前往领取云服务器限时优惠券

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部