插件窝 干货文章 docker 如何运行程序

docker 如何运行程序

运行 Docker 容器 Python 988    来源:    2025-04-26

Docker 运行程序的指南

Docker 是一种容器化技术,可以让你轻松地在隔离的环境中运行应用程序。以下是使用 Docker 运行程序的基本方法和步骤:

基本运行方式

  1. 从现有镜像运行程序

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    例如运行一个简单的 Nginx 服务器:

    docker run -d -p 80:80 nginx
    
  2. 常用选项

    • -d:后台运行(detached 模式)
    • -p:端口映射(主机端口:容器端口)
    • -v:卷挂载(主机目录:容器目录)
    • --name:为容器指定名称
    • -e:设置环境变量
    • --rm:容器退出时自动删除

运行自定义程序

方法1:使用现有镜像运行

  1. 编写你的程序(例如 Python 脚本)
  2. 使用现有基础镜像运行: bash docker run -v $(pwd):/app python:3.9 python /app/your_script.py

方法2:构建自定义镜像运行

  1. 创建 Dockerfile:

    FROM python:3.9
    WORKDIR /app
    COPY . .
    CMD ["python", "your_script.py"]
    
  2. 构建镜像:

    docker build -t my-python-app .
    
  3. 运行容器:

    docker run my-python-app
    

实际示例

运行 Python Flask 应用

  1. 项目结构:

    myapp/
    ├── app.py
    ├── requirements.txt
    └── Dockerfile
    
  2. Dockerfile 内容:

    FROM python:3.9
    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 .
    docker run -d -p 5000:5000 my-flask-app
    

运行 Node.js 应用

  1. Dockerfile 示例:

    FROM node:14
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    EXPOSE 3000
    CMD ["node", "app.js"]
    
  2. 运行:

    docker build -t my-node-app .
    docker run -p 3000:3000 my-node-app
    

管理运行中的容器

  • 查看运行中的容器:docker ps
  • 查看所有容器(包括停止的):docker ps -a
  • 停止容器:docker stop <container_id>
  • 启动已停止的容器:docker start <container_id>
  • 进入运行中的容器:docker exec -it <container_id> /bin/bash
  • 查看容器日志:docker logs <container_id>

最佳实践

  1. 使用 .dockerignore 文件排除不必要的文件
  2. 尽量使用官方镜像作为基础
  3. 每个容器只运行一个主进程
  4. 使用环境变量进行配置
  5. 合理使用数据卷持久化重要数据
  6. 为镜像打上有意义的标签

通过以上方法,你可以灵活地在 Docker 中运行各种类型的应用程序。