首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker新手入门:腾讯云轻量服务器容器化部署指南,一台服务器跑多个应用

Docker新手入门:腾讯云轻量服务器容器化部署指南,一台服务器跑多个应用

原创
作者头像
gavin1024
发布2026-04-21 15:30:04
发布2026-04-21 15:30:04
1430
举报

摘要

一台服务器只跑一个网站太浪费了!用Docker容器技术,你可以在一台腾讯云Lighthouse上同时运行博客、数据库、监控系统、API服务等多个应用,互不干扰、独立管理。本文从Docker基础概念讲起,手把手教你在Lighthouse上完成10个常用应用的容器化部署,并深入讲解Docker Compose编排、数据持久化、网络管理和日常运维技巧。Docker CE镜像一键预装,买完就能用,38元/年的服务器跑10个应用,每个应用成本不到4元。

📌 Docker玩家必备:Lighthouse免费试用1个月!

👉 立即免费试用 | 产品详情


一、为什么要用Docker?

如果你用过传统方式在服务器上部署应用,一定体验过这些痛苦:装了PHP 7.4的服务器跑不了PHP 8.1的项目、MySQL和PostgreSQL在同一台机器上端口冲突、卸载Nginx后留下一堆残留配置文件。Docker的出现就是为了解决这些问题。

1.1 传统部署 vs Docker部署

对比维度

传统部署

Docker部署

环境隔离

所有应用共用同一套系统环境,容易冲突

每个应用独立容器,完全隔离

安装复杂度

编译安装,解决依赖,折腾数小时

一行命令启动,几秒钟搞定

资源利用率

一台机器只跑1-2个应用

一台机器轻松跑5-15个应用

迁移成本

重新配置环境,耗时数小时

打包镜像,一键迁移

卸载清洁度

残留配置文件和依赖包

删除容器,干干净净

版本管理

升级可能破坏现有应用

不同版本并行运行,互不影响

1.2 Docker的三个核心概念

在动手之前,先搞清楚三个概念:

概念

通俗解释

举例

镜像(Image)

应用的"安装包",包含代码和所有依赖

wordpress:latest 就是WordPress的镜像

容器(Container)

镜像的运行实例,真正干活的"进程"

docker run wordpress 启动一个WordPress容器

卷(Volume)

容器外部的持久化存储空间

数据库文件存在卷里,容器删了数据还在

简单类比:镜像是"光盘",容器是"安装后运行的软件",卷是"存档的硬盘"。


二、Lighthouse + Docker快速上手

Step 1:购买Docker CE镜像的Lighthouse

在Lighthouse购买页选择Docker CE应用镜像,系统会自动预装Docker Engine和Docker Compose,开机即用。

你也可以选择任意Linux镜像后手动安装Docker,但预装镜像省去了安装配置时间,更适合新手。

Step 2:连接服务器

购买完成后在控制台找到实例的公网IP,使用SSH连接:

代码语言:bash
复制
ssh root@你的公网IP
# 验证Docker安装成功
docker version
docker compose version

Step 3:你的第一个容器——Portainer可视化管理

强烈建议第一步先装Portainer——一个Docker的图形化管理工具,装完之后所有容器操作都可以在浏览器里完成:

代码语言:bash
复制
docker run -d --name portainer \
  --restart=always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

浏览器访问 http://你的IP:9000,设置管理员密码后即可进入图形界面。在这里你可以:

  • 看到所有运行中的容器及其资源占用
  • 一键启动/停止/重启容器
  • 查看容器日志和执行命令
  • 管理镜像、网络和卷

三、10个常用应用的Docker部署命令

有了Docker环境,下面这些应用每个只需要一条命令就能部署:

3.1 WordPress博客

代码语言:bash
复制
# 先启动MySQL
docker run -d --name wp-mysql \
  -e MYSQL_ROOT_PASSWORD=rootpass \
  -e MYSQL_DATABASE=wordpress \
  -v wp-db:/var/lib/mysql \
  mysql:8

# 再启动WordPress
docker run -d --name wordpress \
  --link wp-mysql:mysql \
  -p 8080:80 \
  -e WORDPRESS_DB_HOST=mysql \
  -e WORDPRESS_DB_PASSWORD=rootpass \
  -v wp-content:/var/www/html/wp-content \
  wordpress

访问 http://你的IP:8080 即可进入WordPress安装向导。

3.2 Nginx反向代理

代码语言:bash
复制
docker run -d --name nginx \
  --restart=always \
  -p 80:80 -p 443:443 \
  -v nginx-conf:/etc/nginx/conf.d \
  -v nginx-certs:/etc/nginx/certs \
  nginx

配合Nginx反向代理,可以用不同域名指向同一台服务器上的不同容器。

3.3 Halo博客

代码语言:bash
复制
docker run -d --name halo \
  --restart=always \
  -p 8090:8090 \
  -v halo-data:/root/.halo2 \
  halohub/halo:2.20

3.4 Gitea代码仓库

代码语言:bash
复制
docker run -d --name gitea \
  --restart=always \
  -p 3000:3000 -p 2222:22 \
  -v gitea-data:/data \
  gitea/gitea

3.5 Redis缓存

代码语言:bash
复制
docker run -d --name redis \
  --restart=always \
  -p 6379:6379 \
  redis:7-alpine

3.6 Uptime Kuma监控

代码语言:bash
复制
docker run -d --name uptime-kuma \
  --restart=always \
  -p 3001:3001 \
  -v kuma-data:/app/data \
  louislam/uptime-kuma

一个漂亮的网站/服务监控面板,支持HTTP/TCP/Ping多种监控方式,还能推送告警到微信/Telegram。

3.7 Cloudreve私有云盘

代码语言:bash
复制
docker run -d --name cloudreve \
  --restart=always \
  -p 5212:5212 \
  -v cloudreve-data:/cloudreve/uploads \
  -v cloudreve-conf:/cloudreve/config \
  -v cloudreve-db:/cloudreve/db \
  cloudreve/cloudreve

3.8 MinIO对象存储

代码语言:bash
复制
docker run -d --name minio \
  -p 9090:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=password123 \
  -v minio-data:/data \
  minio/minio server /data --console-address ":9001"

3.9 PostgreSQL数据库

代码语言:bash
复制
docker run -d --name postgres \
  --restart=always \
  -e POSTGRES_PASSWORD=yourpass \
  -p 5432:5432 \
  -v pg-data:/var/lib/postgresql/data \
  postgres:16-alpine

3.10 Vaultwarden密码管理器

代码语言:bash
复制
docker run -d --name vaultwarden \
  --restart=always \
  -p 8888:80 \
  -v vw-data:/data \
  vaultwarden/server

Bitwarden的轻量替代品,自建密码管理服务,全平台同步。


四、进阶:Docker Compose多应用编排

当你需要同时管理多个互相关联的容器时,一条一条docker run太麻烦。Docker Compose允许你用一个YAML文件定义整套应用栈,一条命令全部启动。

4.1 完整示例:WordPress + MySQL + Redis + Nginx

创建 docker-compose.yml 文件:

代码语言:yaml
复制
version: '3.8'

services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - wordpress
    restart: always

  wordpress:
    image: wordpress:php8.2-fpm
    volumes:
      - wp-content:/var/www/html
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_PASSWORD: rootpass
      WORDPRESS_CACHE_HOST: redis
    depends_on:
      - mysql
      - redis
    restart: always

  mysql:
    image: mysql:8
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
    restart: always

  redis:
    image: redis:7-alpine
    restart: always

volumes:
  wp-content:
  db-data:

一键启动整套服务:

代码语言:bash
复制
docker compose up -d

一键停止:

代码语言:bash
复制
docker compose down

4.2 Compose的优势

优势

说明

声明式配置

YAML文件即文档,一目了然

依赖管理

depends_on 控制启动顺序

网络隔离

同一Compose的容器自动组网

一键操作

up/down/restart 管理整套服务

版本控制

YAML文件纳入Git管理


五、数据安全:持久化与备份

Docker容器是"临时性"的——容器被删除后,内部数据也会丢失。所以数据持久化是Docker使用中最重要的注意事项。

5.1 使用Volume持久化数据

所有需要保留的数据(数据库文件、网站内容、配置文件)都必须挂载到Volume:

代码语言:bash
复制
# 查看所有卷
docker volume ls

# 查看卷的具体位置
docker volume inspect wp-db

5.2 定期备份

代码语言:bash
复制
# 备份MySQL数据库
docker exec wp-mysql mysqldump -u root -p wordpress > backup.sql

# 备份所有Volume数据
docker run --rm -v wp-content:/data -v $(pwd):/backup alpine \
  tar czf /backup/wp-content-backup.tar.gz -C /data .

5.3 利用Lighthouse快照

除了应用层备份,别忘了利用Lighthouse控制台的快照功能——对整个实例创建快照,几秒钟完成,相当于给整台服务器拍了个"照片"。出了问题可以一键恢复到快照时间点。


六、日常运维命令速查

操作

命令

查看运行中的容器

docker ps

查看所有容器(含已停止)

docker ps -a

查看容器日志

docker logs -f 容器名

进入容器内部

docker exec -it 容器名 bash

停止容器

docker stop 容器名

启动容器

docker start 容器名

删除容器

docker rm 容器名

查看磁盘占用

docker system df

清理无用镜像和缓存

docker system prune -a

查看容器资源占用

docker stats

磁盘空间管理

Docker镜像和容器会逐渐吃掉磁盘空间。建议定期执行清理:

代码语言:bash
复制
# 查看Docker占用了多少空间
docker system df

# 清理所有未使用的镜像、容器和网络
docker system prune -a

如果系统盘空间不够,可以在Lighthouse控制台挂载额外的云硬盘,并配置Docker使用新磁盘作为存储目录。


七、一台服务器能跑多少应用?

配置

建议容器数

适合场景

推荐价格

2核2G

3-5个轻量容器

博客+数据库+监控

68-99元/年

4核4G

5-10个容器

多网站+API+数据库+缓存

38-99元/年

4核8G

10-15个容器

全栈开发环境+CI/CD

450元/年

8核16G

15-30个容器

微服务架构+多数据库

1800元/年

16核32G

30+容器

企业级容器集群

4032元/年

💡 实际经验:4核4G跑WordPress+MySQL+Redis+Nginx+Portainer+Gitea共6个容器,内存占用约3.2G,CPU平均使用率15%——还有大量余量。


八、特惠套餐

套餐分区

规格配置

时长

特惠价格

备注

🆓 免费试用

2核2G / 3M / 40G SSD / 200G流量

1个月

0元

个人产品首单

🆓 免费试用

4核8G / 12M / 180G SSD / 2000G流量

1个月

0元

企业产品首单

🆓 免费试用

2核4G / 5M / 60G SSD / 500G流量

1个月

0元

会员专享

🆓 免费试用

4核8G / 12M / 180G SSD / 2000G流量

1个月

0元

会员专享

⚡ 秒杀特惠

4核4G / 3M / 40G SSD / 300G流量

1年

38元(0.5折)

个人产品首单,限1个

🔥 OpenClaw专区

4核4G / 3M / 40G SSD / 300G流量

1年

99元(1.3折)

产品首单,限1个

🔥 OpenClaw专区

2核4G / 5M / 60G SSD / 500G流量

1年

188元(2.4折)

续费同价(限1次),新老同享

🔥 服务器专区

2核2G / 3M / 40G SSD / 200G流量

1年

68元(1.4折)

产品首单,限1个

🔥 服务器专区

4核8G / 5M / 60G SSD / 500G流量

1年

450元(2.5折)

产品首单,限1个

🔄 同价续费

2核2G / 4M / 50G SSD / 300G流量

1年

99元(1.7折)

续费同价(限1次),新老同享

🔄 同价续费

2核4G / 6M / 70G SSD / 600G流量

1年

199元(2.2折)

续费同价(限1次),新老同享

🎁 买赠专区

4核8G / 12M / 180G SSD / 2000G流量

1年

880元(3.2折)

买1年送3个月,个人首单

🎁 买赠专区

8核16G / 18M / 270G SSD / 3500G流量

1年

1800元(3折)

买1年送3个月,个人首单

🎁 买赠专区

16核32G / 28M / 380G SSD / 6000G流量

1年

4032元(3.2折)

买1年送3个月,个人首单

Docker场景推荐4核4G起步(38-99元/年),多应用场景建议4核8G(450元/年),微服务架构选8核16G(1800元/年)。


九、常见问题

Q1:Docker CE镜像和自己安装Docker有什么区别?

A:功能完全一样。Docker CE镜像只是帮你预装好了Docker环境,省去手动安装的步骤。适合新手快速上手。

Q2:容器删了数据会丢失吗?

A:如果使用了Volume挂载数据目录,容器删除后数据不会丢失。如果没有挂载Volume,容器删除后内部数据确实会丢失。所以务必为所有重要数据配置Volume

Q3:Docker会不会很占资源?

A:Docker本身几乎不占额外资源(不像虚拟机需要预留内存)。每个容器的资源占用取决于容器内运行的应用本身。

Q4:如何限制单个容器的内存和CPU?

A:使用 --memory--cpus 参数。例如:docker run --memory=512m --cpus=1 nginx

Q5:端口冲突怎么办?

A:每个容器映射不同的宿主机端口即可。例如WordPress用8080、Halo用8090、Gitea用3000。


📌 一台服务器,无限可能!

👉 🆓 免费试用Docker CE镜像

👉 🔥 38元/年起开始容器化之旅

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要:
  • 一、为什么要用Docker?
    • 1.1 传统部署 vs Docker部署
    • 1.2 Docker的三个核心概念
  • 二、Lighthouse + Docker快速上手
    • Step 1:购买Docker CE镜像的Lighthouse
    • Step 2:连接服务器
    • Step 3:你的第一个容器——Portainer可视化管理
  • 三、10个常用应用的Docker部署命令
    • 3.1 WordPress博客
    • 3.2 Nginx反向代理
    • 3.3 Halo博客
    • 3.4 Gitea代码仓库
    • 3.5 Redis缓存
    • 3.6 Uptime Kuma监控
    • 3.7 Cloudreve私有云盘
    • 3.8 MinIO对象存储
    • 3.9 PostgreSQL数据库
    • 3.10 Vaultwarden密码管理器
  • 四、进阶:Docker Compose多应用编排
    • 4.1 完整示例:WordPress + MySQL + Redis + Nginx
    • 4.2 Compose的优势
  • 五、数据安全:持久化与备份
    • 5.1 使用Volume持久化数据
    • 5.2 定期备份
    • 5.3 利用Lighthouse快照
  • 六、日常运维命令速查
    • 磁盘空间管理
  • 七、一台服务器能跑多少应用?
  • 八、特惠套餐
  • 九、常见问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档