插件窝 干货文章 【整理总结】几个常见的Docker容器

【整理总结】几个常见的Docker容器

Docker 容器 Prometheus bash 407    来源:    2025-04-30

以下是对常见Docker容器的整理总结,涵盖Web服务、数据库、监控工具等典型应用场景,并附关键说明:


1. Web服务类容器

Nginx

docker run -d -p 80:80 --name my-nginx nginx
  • 用途:反向代理、负载均衡、静态资源服务器。
  • 关键配置:挂载自定义配置 /etc/nginx/nginx.conf 和静态文件目录。

Apache HTTPd

docker run -d -p 8080:80 --name my-apache httpd
  • 用途:传统Web服务器,支持PHP等动态内容。

2. 数据库类容器

MySQL

docker run -d -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /data/mysql:/var/lib/mysql \
  --name mysql mysql:8.0
  • 关键参数
    • 数据持久化:-v 挂载数据目录。
    • 环境变量:设置root密码(生产环境需更复杂)。

Redis

docker run -d -p 6379:6379 \
  -v /data/redis:/data \
  --name redis redis:alpine
  • 用途:内存数据库、缓存。
  • 优化:使用alpine镜像减少体积。

3. 应用服务类容器

Node.js应用

docker run -d -p 3000:3000 \
  -v $(pwd):/app \
  --name node-app node:14 \
  sh -c "cd /app && npm start"
  • 开发友好:挂载代码目录实现实时更新。

Python Django

docker run -d -p 8000:8000 \
  -v $(pwd):/code \
  --name django-app python:3.9 \
  sh -c "cd /code && python manage.py runserver 0.0.0.0:8000"

4. 监控与日志类容器

Prometheus

docker run -d -p 9090:9090 \
  -v ./prometheus.yml:/etc/prometheus/prometheus.yml \
  --name prometheus prom/prometheus
  • 配置:需预先准备prometheus.yml配置文件。

Grafana

docker run -d -p 3000:3000 \
  --name grafana grafana/grafana
  • 用途:可视化监控数据(常与Prometheus搭配)。

5. 开发工具类容器

Portainer(Docker管理UI)

docker run -d -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name portainer portainer/portainer
  • 注意:挂载Docker套接字以管理宿主机。

Jenkins

docker run -d -p 8080:8080 -p 50000:50000 \
  -v /var/jenkins_home:/var/jenkins_home \
  --name jenkins jenkins/jenkins:lts
  • 数据持久化:Jenkins配置和Job数据需长期保存。

6. 消息队列类容器

RabbitMQ

docker run -d -p 5672:5672 -p 15672:15672 \
  --name rabbitmq rabbitmq:management
  • 管理界面:访问15672端口,默认账号密码guest/guest

最佳实践建议

  1. 数据持久化
    务必通过-v挂载关键数据(如数据库文件、日志)。
  2. 资源限制
    使用--memory--cpus限制容器资源。
  3. 网络隔离
    复杂应用建议创建自定义网络: bash docker network create my-network docker run --network=my-network ...
  4. 镜像选择
    优先选择官方镜像,生产环境指定版本标签(如mysql:8.0而非mysql:latest)。

通过组合这些容器,可快速搭建开发/生产环境(如LAMP栈:Linux + Apache + MySQL + PHP)。遇到具体问题时,可进一步检查容器日志:

docker logs -f <container_name>