使用Docker部署DashDot服务器仪表盘和Drupal

DashDot是一款简单、实用的开源现代服务器仪表盘,主要应用于小型 VPS服务器它是一个界面非常漂亮的监控服务器面板!

1、拉取Dashdot镜像

bash 复制代码
 docker pull  mauricenino/dashdot

2. 部署DashDot应用

bash 复制代码
创建部署目录
mkdir -p /data/dashdot
cd  /data/dashdot

使用docker-cli创建Dashdot容器

bash 复制代码
docker  run  -d  \
  -p 8987:3001 \
  -v /etc/os-release:/etc/os-release:ro \
  -v /proc/1/ns/net:/mnt/host_ns_net:ro \
  --privileged \
  mauricenino/dashdot

使用docker compose方式快速创建Dashdot容器

bash 复制代码
编辑docker-compose.yaml文件

version: '3'
services:
  dashdot:
    image: mauricenino/dashdot
    ports:
      - 8987:3001
    volumes:
      - /etc/os-release:/etc/os-release:ro
      - /proc/1/ns/net:/mnt/host_ns_net:ro
    privileged: true

运行

bash 复制代码
docker compose up -d

地访问DashDot服务

访问地址:http://ip:8987

在浏览器可以访问Dashdot服务器仪表盘首页。可以看出它识别出我的CPU ,内存,硬盘等信息

1、拉取Drupal镜像

bash 复制代码
获取Drupal镜像
docker pull drupal:latest
bash 复制代码
!/bin/bash
# 创建Drupal临时容器
docker run --name drupal_temp -p 8080:80 -d drupal:latest
# 压缩容器内文件并输出到宿主机
docker exec drupal_temp tar -czf - -C /var/www/html . > ~/drupal_files.tar.gz
# 解压到宿主机目录
mkdir -p ~/drupal_backup && tar -xzf ~/drupal_files.tar.gz -C /projects/drupal/web
# 清理临时容器
docker rm -f drupal_temp

执行完毕后,容器内的代码就安全地"搬迁"到了宿主机,为持久化打下了基础。

第三步:编写Docker Compose配置文件

接下来需要编写docker-compose.yml文件,这是整个部署的核心:

docker-compose.yml

bash 复制代码
version: '3.8'

services:
  drupal:
    image: drupal:latest
    container_name: drupal
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ~/drupal/web:/var/www/html
      - ~/drupal/modules:/var/www/html/modules
      - ~/drupal/themes:/var/www/html/themes
      - ~/drupal/sites:/var/www/html/sites
    depends_on:
      - mariadb
    environment:
      DRUPAL_DATABASE_HOST: mariadb
      DRUPAL_DATABASE_NAME: drupal
      DRUPAL_DATABASE_USER: drupaluser
      DRUPAL_DATABASE_PASSWORD: drupaluser
      DRUPAL_PROFILE: standard
    networks:
      - drupal_network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 30s
      timeout: 10s
      retries: 3

  mariadb:
    image: mariadb:latest
    container_name: mariadb
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: drupal
      MYSQL_USER: drupaluser
      MYSQL_PASSWORD: drupaluser
      MYSQL_ROOT_PASSWORD: rootpassword123
      TZ: Asia/Shanghai
    volumes:
      - mariadb_data:/var/lib/mysql
      - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3306:3306"
    networks:
      - drupal_network
    command:
      - "--character-set-server=utf8mb4"
      - "--collation-server=utf8mb4_unicode_ci"
      - "--max_allowed_packet=256M"
      - "--innodb_buffer_pool_size=256M"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

volumes:
  mariadb_data:
    driver: local

networks:
  drupal_network:
    external: true
bash 复制代码
1. 创建外部网络(如果不存在)
# 创建网络
docker network create drupal_network
# 查看网络
docker network ls
2. 创建必要的目录
# 创建项目目录结构
mkdir -p ~/drupal/{web,modules,themes,sites,mysql}
  1. 创建 MySQL 配置文件
bash 复制代码
# 创建 MySQL 配置文件
cat > ~/drupal/mysql/my.cnf << 'EOF'
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_allowed_packet = 256M
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 2

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4
EOF
相关推荐
潮起鲸落入海7 分钟前
Kubernetes Metric Server, Quota and Limits
容器·kubernetes
梦想的颜色14 分钟前
Docker 容器化本地部署 Claude Code 完整硬核教程|隔离沙盒 + 国产模型直连 + 持久化 Skill
运维·容器·ai 工程化·沙盒隔离·docker 本地部署·claude code硬核实战·国内国产模型接入
wbs_scy29 分钟前
仿 muduo 高并发服务器项目:从 timerfd 到时间轮实现定时任务机制
linux·服务器·c++
渣渣盟1 小时前
Docker 运维常用命令手册(含扩容与实战)
运维·docker·容器
小尘要自信1 小时前
小米摄像头怎么接入RTSP?Go2RTC转流、EasyNVR录像与公网访问教程
人工智能·docker·开源
小羊Yveesss1 小时前
2026年外贸建站服务器怎么选?访问速度、稳定性和海外收录怎么判断
大数据·运维·服务器
我叫张小白。2 小时前
一个微服务电商+社区项目(瓷韵app)的技术深度复盘
docker·微服务·云原生·架构
咕噜咕噜的猪大侠3 小时前
《K8s 核心知识梳理:Deployment 滚动更新、JobCronJob、DaemonSet 和 Service》
云原生·容器·kubernetes
随风一样自由3 小时前
【WSL+Linux】国内网络连接微软官方服务器(或GitHub)不稳定,导致下载内核或Linux发行版时超时断开如何解决?
linux·服务器·wsl
源图客3 小时前
Claude Code基础使用
服务器·前端·数据库