Skip to content

第二十一期 Docker:部署和简单管理 MariaDB/MySQL 数据库

本期视频我们分享使用 Docker 部署和管理 Mariadb 的方法,如果你准备在 NAS 上安装 Nextcloud 网盘,一定不要错过本期视频。

视频地址

MariaDB Stack

以下配置会同时在 Docker 中部署 MariaDB 和 Adminer 两个应用容器,在执行一键部署之前,请先手动创建一个名为 mynet 的桥接类型网络。

请将配置中的 ROOT_ACCESS_PASSWORD 替换成要给 root 用户设置的密码。

yaml
---
version: "2"
services:
  mariadb:
    image: linuxserver/mariadb
    container_name: mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD
      - TZ=Asia/Shanghai
    volumes:
      - mariadb_data:/config
    ports:
      - 3306:3306
    networks:
      - mynet
    restart: unless-stopped
  
  adminer:
    image: adminer
    container_name: adminer
    environment:
      - ADMINER_DEFAULT_SERVER=mariadb
    ports:
      - 8080:8080
    networks:
      - mynet
    restart: unless-stopped

networks:
  mynet:
    external:
      name: mynet

管理数据库

一键部署完成后,使用 http://nas-ip:8080 (请将 nas-ip 替换成 OMV 的局域网 IP 地址) 访问 adminer 的应用界面。

初次登录信息如下:

  • 系统:MYSQL
  • 服务器:mariadb
  • 用户名:root
  • 密码:配置文件中 MYSQL_ROOT_PASSWORD 项的值

常见问题

一、PUID 和 PGID 是干什么的?

LinuxServer 维护的 Docker 镜像都有 PUIDPGID 这两个环境变量,他们主要用来设置挂载到容器中的存储的所有权。

默认情况下,挂载到容器上的存储会以 root 用户的身份写入文件,这会使得主机上的普通用户没有权限去读写这些文件。为了让主机上的特定用户能够读写挂载到容器中的存储,可以将用户或组的 ID 通过 PUIDPGID 这两个环境变量进行指定。设置以后,容器中的程序就会以所设置的用户身份在挂载的存储上写入数据了。

相关连接