当前位置: 首页 > news >正文

Docker容器部署方法

1. 基础部署流程

准备 Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

构建和运行容器

# 构建镜像
docker build -t my-app .# 运行容器
docker run -d -p 3000:3000 --name my-app-container my-app# 查看运行中的容器
docker ps# 查看日志
docker logs my-app-container

2. 使用 Docker Compose(推荐)

创建 docker-compose.yml

version: '3.8'
services:web:build: .ports:- "3000:3000"environment:- NODE_ENV=productiondepends_on:- dbdb:image: postgres:13environment:POSTGRES_DB: myappPOSTGRES_USER: userPOSTGRES_PASSWORD: passwordvolumes:- db_data:/var/lib/postgresql/datavolumes:db_data:

运行命令:

# 启动服务
docker-compose up -d# 停止服务
docker-compose down

3. 生产环境部署最佳实践

多阶段构建

# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production# 运行阶段
FROM node:18-alpine
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
WORKDIR /app
COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules
COPY --chown=nextjs:nodejs . .
USER nextjs
EXPOSE 3000
CMD ["npm", "start"]

使用 .dockerignore

node_modules
npm-debug.log
.git
.env
Dockerfile
README.md

4. 容器编排部署

使用 Docker Swarm

# 初始化 Swarm
docker swarm init# 部署堆栈
docker stack deploy -c docker-compose.yml myapp

使用 Kubernetes

创建 deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: my-app
spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: my-appimage: my-app:latestports:- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:name: my-app-service
spec:selector:app: my-appports:- port: 80targetPort: 3000type: LoadBalancer

5. 环境特定配置

使用环境变量

# 通过环境变量配置
docker run -d \-e DATABASE_URL=postgresql://user:pass@db:5432/myapp \-e REDIS_URL=redis://redis:6379 \my-app

配置文件挂载

# 挂载配置文件
docker run -d \-v $(pwd)/config:/app/config \-p 3000:3000 \my-app

6. 监控和日志

# 查看容器资源使用
docker stats# 查看详细日志
docker logs -f my-app-container# 进入容器调试
docker exec -it my-app-container sh

7. 持续集成/持续部署

GitHub Actions 示例

name: Build and Deploy
jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Build Docker imagerun: docker build -t my-app .- name: Deploy to serverrun: |docker-compose pulldocker-compose up -d

部署检查清单

  • Dockerfile 优化(多阶段构建、最小基础镜像)
  • 安全扫描镜像漏洞
  • 配置正确的资源限制
  • 设置日志轮转策略
  • 配置健康检查
  • 备份和恢复策略
  • 监控和告警设置

http://www.dtcms.com/a/533836.html

相关文章:

  • 专业手机网站建设价格手机域名注册网站
  • 济南企业网站建设哪家好百度手机seo
  • Python基于深度学习的短视频内容理解与推荐系统【附源码、文档说明】
  • 怎样把自己做的网页放在网站里建设银行网站怎么先无贷款呢
  • 学校网站建设工作总结会员管理网站建设
  • 陕西咸阳做网站的公司营销策划的步骤有哪些
  • Gorm(三)更新操作
  • 新乡微信网站建设wordpress仿安卓主题下载
  • 佛山自助建站软件咖啡网站建设的优势
  • 佛山网站架设360线上推广
  • 网站留言效果怎么做钦州建设银行社招聘网站
  • 浙江建设信息港网站查询开网店如何运营和推广
  • XML 查看
  • 广州网站建设制作wordpress分页上一页
  • 怎么做好邯郸网站建设风铃微网站怎么做
  • 网站建设对标行业分析建设行业的门户网站
  • 城乡住房建设部网站保证金wordpress系统api
  • SZU大学物理1实验报告|电源设计
  • SAP 在生产机维护需传输请求的表
  • 小广告怎么制作seo搜索引擎官网
  • 【Linux kali 更换yum源】
  • huggingface/trl的单卡训练reward model示例
  • 智慧校园集控管理平台解决方案PPT(39页)
  • 网站开发宣传语旅游产品设计方案
  • 东坑网站建设合肥电脑培训
  • 哪些网站做家政推广手机排版软件app
  • 【关于导线的学习】
  • muse cc 做网站贵阳网站建设优化
  • wordpress 企业主体苏州seo服务
  • 怎么查网站外链数微商城系统源码