插件窝 干货文章 怎么Docker?部署流程详解

怎么Docker?部署流程详解

Docker 镜像 容器 bash 794    来源:    2025-04-30

Docker 是一种轻量级容器化技术,通过标准化封装应用及其依赖环境实现快速部署。以下是详细部署流程和关键概念解析:


一、Docker 核心概念

  1. 镜像(Image)
    • 只读模板,包含应用代码、运行时环境和配置文件(如 nginx:alpine)。
  2. 容器(Container)
    • 镜像的运行实例,拥有独立文件系统和网络。
  3. Dockerfile
    • 文本文件,定义镜像构建步骤(如安装依赖、复制文件)。
  4. Docker Hub
    • 官方镜像仓库,可托管自定义镜像(类似 GitHub)。

二、完整部署流程

1. 安装 Docker

  • Linux (Ubuntu): bash sudo apt update && sudo apt install docker.io sudo systemctl enable --now docker
  • Windows/macOS
    下载 Docker Desktop 并安装。

验证安装:

docker --version
docker run hello-world  # 测试运行

2. 编写 Dockerfile

示例:部署 Python Flask 应用

# 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install -r requirements.txt

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 5000

# 启动命令
CMD ["python", "app.py"]

3. 构建镜像

docker build -t my-flask-app:1.0 .
  • -t:指定镜像名称和标签
  • .:Dockerfile 所在目录

4. 运行容器

docker run -d -p 5000:5000 --name flask-container my-flask-app:1.0
  • -d:后台运行
  • -p:主机端口:容器端口映射
  • --name:指定容器名称

5. 管理容器

  • 查看运行中的容器: bash docker ps
  • 停止/删除容器: bash docker stop flask-container docker rm flask-container
  • 查看日志: bash docker logs flask-container

三、高级操作

  1. 持久化数据
    使用卷(Volume)保存数据库等数据:

    docker run -d -v /host/path:/container/path mysql
    
  2. 多容器编排(Docker Compose)
    docker-compose.yml 定义多服务(如 Web + DB):

    version: '3'
    services:
     web:
       build: .
       ports: ["5000:5000"]
     redis:
       image: "redis:alpine"
    

    启动:

    docker-compose up -d
    
  3. 推送镜像到仓库

    docker tag my-flask-app:1.0 username/repo:tag
    docker push username/repo:tag
    

四、常见问题解决

  • 权限问题
    在 Linux 下将用户加入 docker 组: bash sudo usermod -aG docker $USER
  • 端口冲突
    修改 -p 参数(如 -p 8080:5000)。
  • 镜像清理
    bash docker system prune -a # 删除无用镜像/容器

五、学习资源

通过以上步骤,你可以快速上手 Docker 部署。建议从简单应用开始,逐步尝试网络、存储和编排等高级功能。