生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

319

主题
发表于 2024-9-23 06:47:13 | 查看: 170| 回复: 0

环境

基于portainer版本:1.24.2.和docker版本:19.03.5

背景

近期会使用相册管理软件PhotoPrism,产生的需求。

PhotoPrism 默认使用内建的 MariaDB 数据库来存储数据,考虑到它的应用是那么的广泛,我们应该避免未来多个 docker 应用各自运行独立的 MariaDB 数据库。因此,请先 安装 Docker 版本的 MariaDB 数据库和可视化数据库管理工具 phpMyAdmin ,这对节省系统资源和维护管理相当有用。

准备几个存储卷

方便MariaDB映射

物理来源pve硬盘,nfs映射

pve上建好目录结构 4.png

创建好存储卷 5.png

拉取MariaDB镜像

  1. 进入容器,添加容器 68.png
  2. 编辑参数 名称:mariadb

镜像源:mariadb:latest

6.png

添加存储卷

分别关联前面准备的两个目录

"/var/lib/mysql"        # 数据库数据目录
"/etc/mysql/conf.d"      # 数据库配置目录

图示如下: 8.png

添加环境变量

进入环境变量,并添加2个参数.

TZ: Asia/Shanghai # 容器内部时区

MYSQL_ROOT_PASSWORD: insecure # 数据库 ROOT 用户密码,自行指定 7.png 再修改重启策略为除非停止 75.png

网传的参数多余,我没有找到地方设置的如下:

   security_opt:
     - seccomp:unconfined
     - apparmor:unconfined

部署

拉取 phpMyAdmin 镜像

  1. 进入容器,添加容器 68.png
  2. 编辑参数 名称:phpMyAdmin

镜像源:phpmyadmin/phpmyadmin:5.1

端口:9080:80 9.png

添加环境变量

进入环境变量,并添加2个参数.

TZ: Asia/Shanghai # 容器内部时区 UPLOAD_LIMIT: 128M # 默认上传文件大小限制调整到 128 M PMA_HOST: mariadb:3306 # 指定数据库的位置和端口,默认值 MYSQL_ROOT_PASSWORD: insecure # 数据库 ROOT 用户密码,自行指定 MARIADB_AUTO_UPGRADE: 1 10.png 再修改重启策略为除非停止 75.png

网传的参数yaml配置的,我没有找到地方设置的如下:

主要是设置启动顺序,依赖于mariadb容器后 再启动。

   depends_on:
     - mariadb

部署

打开ip+9080就可以访问数据库了。 11.png

遇到问题

登录提示错误: 12.png

  1. 需要配置MariaDB以允许远程连接:(也可以作为检查用,直接看第二步)

首先,你需要进入容器内操作MySQL命令行进行权限设置。可以通过以下命令进入容器的bash shell:

docker exec -it mariadb bash

然后,在容器内作为root用户登录MySQL,并赋予root用户或者其他用户远程访问权限:

mysql -u root -p

报错

bash: mysql: command not found

需要安装客户端

apt-get update
apt-get install mysql-client -y

exit后重新进入,即可使用mysql命令。

mysql -u root -p
select host,user,plugin,authentication_string from mysql.user;

检查登录用户名密码 ip限制

如果没有root的%,使用下面两行代码添加

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mariadbyyds@';
FLUSH PRIVILEGES;

这里 GRANT 语句授予了root用户从任何IP地址(%)访问所有数据库的所有权限。

  1. 重新登录还是不行 检查后,原来是两个容器网络不在一起。前面的感觉设置所有ip登录就感觉没啥用,可能公网访问再用吧。

通过 Portainer 管理面板创建一个 PhotoPrism 和 MariaDB 专用的网络,此举可以提升安全性。 点击 Portainer 左侧 Networks,点击右侧 Add network,在 name 处输入 photoprism-net,然后直接点击页面底部的 Create the network 完成创建。

将mariadb和 phpMyAdmin容器的网络分别加入photoprism-net。

重新登陆记录。

后记

http://localhost:9080 

账户名 root 密码 MYSQL_ROOT_PASSWORD 设置的值

如果您不是在本机安装,请不要忘记将 localhost 替换为安装设备的实际 IP 地址

如果您修改了默认的 HTTP 访问端口,请不要忘记将 9080 替换为您自定义的端口

后续开始配置photoprim软件。

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-12-4 00:51 , Processed in 0.085545 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表