插件窝 干货文章 docker应该怎么部署

docker应该怎么部署

Docker 容器 镜像 使用 858    来源:    2025-04-29

Docker 部署指南

Docker 是一个开源的容器化平台,可以帮助开发者打包应用及其依赖项到一个可移植的容器中。以下是 Docker 部署的基本步骤和最佳实践:

1. 安装 Docker

Linux 系统

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定版仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

Windows/macOS

  • 下载 Docker Desktop 并安装: https://www.docker.com/products/docker-desktop

2. 基本 Docker 命令

# 查看 Docker 版本
docker --version

# 查看 Docker 信息
docker info

# 拉取镜像
docker pull [镜像名]:[标签]

# 运行容器
docker run [选项] [镜像名]

# 列出运行中的容器
docker ps

# 列出所有容器(包括停止的)
docker ps -a

# 停止容器
docker stop [容器ID/名称]

# 启动已停止的容器
docker start [容器ID/名称]

# 删除容器
docker rm [容器ID/名称]

# 删除镜像
docker rmi [镜像ID/名称]

3. 使用 Dockerfile 构建自定义镜像

创建一个名为 Dockerfile 的文件(无扩展名):

# 基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录内容到容器的工作目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 80

# 定义环境变量
ENV NAME World

# 容器启动时运行的命令
CMD ["python", "app.py"]

构建镜像:

docker build -t my-python-app .

4. Docker Compose 部署多容器应用

创建 docker-compose.yml 文件:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    environment:
      FLASK_ENV: development
  redis:
    image: "redis:alpine"

启动服务:

docker-compose up

5. 最佳实践

  1. 使用官方镜像:优先选择官方维护的镜像,它们更安全、更新更及时
  2. 最小化镜像:使用 Alpine Linux 等轻量级基础镜像
  3. 单进程容器:每个容器只运行一个主进程
  4. 使用 .dockerignore:排除不必要的文件,减少构建上下文大小
  5. 多阶段构建:减少最终镜像大小
  6. 避免使用 root:在容器中使用非 root 用户运行应用
  7. 日志管理:配置适当的日志驱动和轮换策略
  8. 资源限制:为容器设置 CPU 和内存限制

6. 生产环境部署建议

  1. 使用编排工具:如 Kubernetes 或 Docker Swarm 管理容器集群
  2. 监控:实施容器监控方案(Prometheus, cAdvisor等)
  3. 日志集中管理:使用 ELK 或 Fluentd 收集日志
  4. 安全扫描:定期扫描镜像中的漏洞(如使用 Clair, Trivy)
  5. CI/CD 集成:将 Docker 构建和部署集成到持续交付流程中

7. 常见问题解决

  • 权限问题:将用户加入 docker 组或使用 sudo
  • 端口冲突:检查主机端口是否已被占用
  • 存储空间不足:定期清理未使用的镜像和容器
  • 网络问题:检查 Docker 网络配置和防火墙设置

希望这份指南能帮助你顺利部署 Docker 应用!如需更具体的帮助,请提供你的具体应用场景和需求。