预约咨询 提交工单

Docker 容器化部署实战指南

容器化是现代运维的标配。本文手把手教你部署 Docker,构建应用镜像,以及使用 Docker Compose 编排多服务应用。 安装 Docker bash 一键安装脚本 curl fsSL https://get.docker.com | sh 添加用户到 docker 组 sudo usermod aG docker $USER newgrp dock

Docker 容器化部署实战指南
企业服务 Linux

项目背景与挑战

容器化是现代运维的标配。本文手把手教你部署 Docker,构建应用镜像,以及使用 Docker Compose 编排多服务应用。 安装 Docker bash 一键安装脚本 curl fsSL https://get.docker.com | sh 添加用户到 docker 组 sudo usermod aG docker $USER newgrp dock

解决方案

容器化是现代运维的标配。本文手把手教你部署 Docker,构建应用镜像,以及使用 Docker Compose 编排多服务应用。 安装 Docker bash 一键安装脚本 curl fsSL https://get.docker.com | sh 添加用户到 docker 组 sudo usermod aG docker $USER newgrp dock

交付结果

详细说明

容器化是现代运维的标配。本文手把手教你部署 Docker,构建应用镜像,以及使用 Docker Compose 编排多服务应用。

安装 Docker

# 一键安装脚本
curl -fsSL https://get.docker.com | sh

# 添加用户到 docker 组
sudo usermod -aG docker $USER
newgrp docker

为 opsglobal 编写 Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
USER node
CMD ["node", "server.js"]

Docker Compose 编排

version: 3.8

services:
  app:
    build: .
    ports:
      - 3000:3000
    environment:
      - NODE_ENV=production
      - DB_HOST=db
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: opsglobal
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

  nginx:
    image: nginx:alpine
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - app

volumes:
  mysql_data:

实用技巧

  • 使用 .dockerignore 减少镜像体积
  • 多阶段构建优化生产镜像
  • 配置健康检查自动重启异常容器
!

你的系统也遇到类似问题?

我们可以根据你的实际环境复用类似排查思路,提供远程诊断、修复、优化和交付报告。

工单 WhatsApp 联系 咨询