插件窝 干货文章 如何使用Docker进行应用部署和管理

如何使用Docker进行应用部署和管理

Docker 容器 镜像 运行 892    来源:    2025-04-10

使用Docker进行应用部署和管理的完整指南

Docker基础概念

Docker是一种容器化平台,允许你将应用程序及其依赖项打包到一个轻量级、可移植的容器中。主要组件包括:

  • Docker镜像(Image):只读模板,包含运行应用所需的一切
  • Docker容器(Container):镜像的运行实例
  • Dockerfile:用于构建镜像的文本文件
  • Docker Hub:公共镜像仓库

安装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引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

在Windows/macOS上安装

下载并安装Docker Desktop

基本Docker命令

# 查看Docker版本
docker --version

# 列出本地镜像
docker images

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

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

# 列出运行中的容器
docker ps

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

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

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

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

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

使用Dockerfile构建自定义镜像

示例Dockerfile:

# 使用官方Python运行时作为基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

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

# 安装requirements.txt中指定的依赖
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# 暴露端口
EXPOSE 80

# 定义环境变量
ENV NAME World

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

构建镜像:

docker build -t my-python-app .

容器网络管理

# 创建自定义网络
docker network create my-network

# 运行容器并连接到网络
docker run --network=my-network --name my-container -d my-app

# 查看网络详情
docker network inspect my-network

数据持久化

# 创建卷
docker volume create my-volume

# 运行容器并挂载卷
docker run -v my-volume:/data --name my-container my-app

# 使用绑定挂载(主机目录)
docker run -v /host/path:/container/path my-app

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 -d

# 停止服务
docker-compose down

# 查看服务状态
docker-compose ps

# 构建或重新构建服务
docker-compose build

监控和日志

# 查看容器日志
docker logs [容器ID/名称]

# 实时查看日志
docker logs -f [容器ID/名称]

# 查看容器资源使用情况
docker stats

# 进入运行中的容器
docker exec -it [容器ID/名称] /bin/bash

安全最佳实践

  1. 使用非root用户运行容器
  2. 定期更新基础镜像
  3. 限制容器资源使用
  4. 扫描镜像中的漏洞
  5. 使用可信的基础镜像
  6. 避免在镜像中存储敏感信息

进阶主题

  • Docker Swarm:原生集群管理工具
  • Kubernetes:更强大的容器编排系统
  • CI/CD集成:与Jenkins、GitLab CI等工具集成
  • 多阶段构建:减小最终镜像大小
  • 健康检查:确保容器应用正常运行

通过掌握这些Docker基础知识,你可以有效地部署和管理容器化应用程序,提高开发效率和系统可靠性。