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

Docker 创建及部署完整流程

一、Docker 环境准备

1. 安装 Docker

  • Linux:

    curl -fsSL https://get.docker.com | sh
    sudo systemctl enable --now docker
    
  • Windows/macOS:
    下载 Docker Desktop

2. 验证安装

docker --version
docker run hello-world

二、Docker 镜像创建流程

1. 编写 Dockerfile

# 基础镜像
FROM node:16-alpine# 设置工作目录
WORKDIR /app# 复制文件
COPY package*.json ./
COPY . .# 安装依赖
RUN npm install# 暴露端口
EXPOSE 3000# 启动命令
CMD ["npm", "start"]

2. 构建镜像

docker build -t my-app:1.0 .

3. 查看镜像

docker images

三、Docker 容器运行

1. 运行容器

docker run -d -p 3000:3000 --name my-app-container my-app:1.0

2. 常用操作命令

# 查看运行中的容器
docker ps# 查看所有容器
docker ps -a# 停止容器
docker stop my-app-container# 启动已停止的容器
docker start my-app-container# 进入容器
docker exec -it my-app-container sh# 查看日志
docker logs -f my-app-container

四、Docker 部署方案

1. 单机部署

# 带环境变量运行
docker run -d -p 3000:3000 \-e NODE_ENV=production \--name my-app-prod \my-app:1.0

2. Docker Compose 部署

创建 docker-compose.yml:

version: '3.8'
services:app:image: my-app:1.0ports:- "3000:3000"environment:- NODE_ENV=productionvolumes:- ./logs:/app/logs

启动服务:

docker-compose up -d

3. 生产环境部署 (Swarm/Kubernetes)

Docker Swarm 示例:
# 初始化Swarm
docker swarm init# 部署服务
docker stack deploy -c docker-compose.yml my-app
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:1.0ports:- containerPort: 3000

五、镜像管理

1. 推送到 Docker Hub

# 登录
docker login# 标记镜像
docker tag my-app:1.0 username/my-app:1.0# 推送
docker push username/my-app:1.0

2. 私有仓库使用

# 拉取私有仓库镜像
docker pull registry.example.com/my-app:1.0# 推送镜像到私有仓库
docker tag my-app:1.0 registry.example.com/my-app:1.0
docker push registry.example.com/my-app:1.0

六、最佳实践

  1. 镜像优化:

    # 多阶段构建示例
    FROM node:16 as builder
    WORKDIR /app
    COPY . .
    RUN npm install && npm run buildFROM nginx:alpine
    COPY --from=builder /app/dist /usr/share/nginx/html
    
  2. 安全建议:

    • 不要以 root 用户运行容器
    • 定期更新基础镜像
    • 扫描镜像漏洞 (docker scan my-app:1.0)
  3. 监控与日志:

    # 查看资源使用
    docker stats# 日志驱动配置
    docker run --log-driver=syslog ...
    
  4. 网络配置:

    # 创建自定义网络
    docker network create my-network# 连接容器到网络
    docker run --network=my-network ...
    

七、常用工具链

  1. 开发工具:

    • Docker Desktop (GUI管理)
    • VS Code Docker 扩展
  2. CI/CD 集成:

    # GitHub Actions 示例
    jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- run: docker build -t my-app .
    
  3. 编排工具:

    • Docker Compose
    • Kubernetes
    • Docker Swarm
  4. 监控工具:

    • cAdvisor
    • Portainer (可视化管理)

按照这个流程,您可以完成从开发到生产的完整 Docker 应用生命周期管理。

相关文章:

  • (五)docker环境中配置hosts
  • 【论文阅读笔记】HaDes幻觉检测benchmark
  • 搭建gitlab ci/cd runner实现对c++项目的自动编译和打包
  • 丝杆升降机的物联网与大数据应用的具体例子
  • V837s-SDK Telnetd服务连接不上异常解决
  • A16 扁平化管理
  • YSYX学习记录(八)
  • PHP 多种内置的验证规则和函数
  • 网络验证Api用户系统(本系统基于php+mysql开发) 软件验证卡密系统 源码测试搭建成功
  • MFC 第一章概述
  • RabbitMQ的使用--Spring AMQP(更新中)
  • ubuntu24安装TensorRT
  • Vue.js 中的 v-bind 指令详解
  • 熵最小化Entropy Minimization (二): 案例实施
  • 《高等数学》(同济大学·第7版)第三章第六节函数图形的描绘
  • 设计模式-备忘录模式
  • 代码随想录刷题day31
  • 专题一_双指针_快乐数
  • 解锁数据库简洁之道:FastAPI与SQLModel实战指南
  • 每日算法 -【Swift 算法】删除链表的倒数第 N 个结点
  • 招代理网站建设公司/云速seo百度点击
  • 网页设计制作价格/武汉网站开发公司seo
  • 深圳专业做网站的公司哪家好/海外推广代理公司
  • 网站建设名词解释/国家职业技能培训官网
  • 兴隆大院网站哪个公司做的/图们网络推广
  • 烟台城乡住房建设厅网站/网上店铺的推广方法有哪些