Docker 篇

发布于:2025-03-08 ⋅ 阅读:(30) ⋅ 点赞:(0)

引言

Docker 是一种轻量级容器化技术,通过标准化环境封装应用及其依赖,实现跨平台的高效部署。本指南将详细介绍 Docker 部署的全流程,涵盖基础环境搭建、容器配置、高级管理等核心内容。

环境准备

安装 Docker

Windows 系统
  1. 下载 Docker Desktop 安装包:Docker Desktop
  2. 运行安装程序,选择 “Install”
  3. 完成安装后,通过以下命令验证:
docker --version
Linux 系统(Ubuntu 为例)
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version
Mac 系统
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

基础部署流程

镜像获取

# 拉取官方镜像
docker pull nginx:latest

# 拉取特定版本
docker pull mysql:8.0

容器运行

# 简单运行
docker run -d -p 80:80 --name webserver nginx

# 带数据卷
docker run -d \
  -v /data/mysql:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=secret \
  --name mysql-server \
  mysql:8.0

容器管理

命令 说明
docker ps 查看运行中的容器
docker stop [容器ID] 停止容器
docker start [容器ID] 启动容器
docker logs [容器ID] 查看容器日志
docker exec -it [容器ID] bash 进入容器终端

高级配置

Docker Compose 部署

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=secret
    volumes:
      - ./mysql_data:/var/lib/mysql

网络配置

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

# 容器加入网络
docker run -d --network my-network --name web1 nginx

安全加固

# 限制容器资源
docker run -d \
  --memory=512m \
  --cpus=1 \
  --name app-container \
  myapp:latest

# 使用只读文件系统
docker run -d --read-only --name secure-app myapp:latest

生产环境优化

监控与日志

# 安装Prometheus监控
docker run -d \
  -p 9090:9090 \
  --name prometheus \
  prom/prometheus

# 配置日志驱动
docker run -d \
  --log-driver=json-file \
  --log-opt max-size=10m \
  --name app \
  myapp:latest

常见问题处理

镜像拉取失败

# 更换国内镜像源
vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
sudo systemctl restart docker

容器无法启动

# 查看详细日志
docker logs -f --tail=50 [容器ID]

# 检查资源限制
docker stats [容器ID]

数据卷权限问题

# 修改挂载目录权限
sudo chown -R 1000:1000 /data/mysql

参考资源

  1. Docker 官方文档
  2. Docker Hub 镜像库
  3. Docker Compose 用户指南

本指南提供了从基础到高级的 Docker 部署方案,适用于开发测试到生产环境的全生命周期管理。如需进一步了解特定场景的部署优化策略,可随时补充说明具体需求。


网站公告

今日签到

点亮在社区的每一天
去签到