Docker 部署实战:在 VPS 上从零搭建容器环境,轻松管理网站与应用


Docker 部署实战:在 VPS 上从零搭建容器环境,轻松管理网站与应用

目录

  1. 引言
  2. 准备工作
  3. 安装 Docker
  4. 安装 Docker Compose
  5. 部署应用
  6. 日常管理
  7. 故障排除
  8. 总结

引言

在当今云计算和容器化技术飞速发展的时代,Docker 已经成为 DevOps 领域不可或缺的工具。本教程将带你从零开始在 VPS 上搭建完整的 Docker 容器环境,并轻松管理你的网站与应用。

无论你是系统管理员、开发人员,还是对容器技术感兴趣的学习者,掌握 Docker 部署技能都将大大提升你的工作效率和技术竞争力。

准备工作

系统要求

  • 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8
  • 内存:至少 2GB RAM
  • 存储空间:至少 20GB 可用磁盘空间
  • 网络:稳定的互联网连接

获取 VPS

你可以从以下服务商获取 VPS:

  • DigitalOcean:简单易用,适合初学者
  • Linode:性能稳定,价格实惠
  • AWS EC2:功能强大,生态完善
  • 阿里云/腾讯云:国内访问速度快

安装 Docker

Ubuntu 系统

# 更新系统包
sudo apt update

# 安装必要依赖
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

# 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置 Docker 稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

# 验证安装
docker --version
sudo docker run hello-world

CentOS 系统

# 安装 yum 插件
sudo yum install -y yum-utils

# 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker --version
sudo docker run hello-world

安装 Docker Compose

# 下载 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 设置执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

部署应用

创建项目目录

mkdir -p ~/myapp
cd ~/myapp

编写 Dockerfile

创建 Dockerfile 文件:

FROM node:18-alpine

WORKDIR /app

# 安装依赖
COPY package*.json ./
RUN npm install

# 复制源代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["npm", "start"]

创建 docker-compose.yml

version: '3.8'

services:
  web:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=production
    restart: always

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - ./ssl:/etc/nginx/ssl:ro
    depends_on:
      - web
    restart: always

日常管理

容器管理命令

# 查看所有容器
docker ps -a

# 查看运行中的容器
docker ps

# 查看日志
docker logs -f container_name

# 进入容器
docker exec -it container_name bash

# 重启容器
docker restart container_name

# 停止容器
docker stop container_name

# 删除容器
docker rm container_name

使用 Docker Compose 管理

# 启动服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

# 重建服务
docker-compose up -d --build

故障排除

常见问题

  1. Docker 服务无法启动
sudo systemctl status docker
sudo journalctl -u docker -n 50
  1. 端口被占用
sudo lsof -i :3000
sudo kill -9 PID
  1. 权限问题
sudo usermod -aG docker $USER
newgrp docker

总结

恭喜你!你已经成功在 VPS 上搭建了 Docker 容器环境。现在你可以:

  • 轻松部署和管理各种应用
  • 利用容器化技术提高开发效率
  • 实现环境的快速复制和迁移
  • 构建更可靠的 CI/CD 流程

记住,实践是学习 Docker 的最佳方式。不断尝试、不断实验,你将成为容器化领域的专家!


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

Docker 部署实战:在 VPS 上从零搭建容器环境,轻松管理网站与应用

VPS 性能评测实战:跑分、磁盘 IO 与网络延迟一次看懂

评 论