Docker部署mariadb数据库

发布时间:2024-11-23 人气:85次

许多docker应用是需要数据库的,你可以通过docker-compose依赖关系在每个docker容器中都启用一个数据库实例,也可以整个nas就启动一个数据库,有需要的容器连接到该数据库容器即可。

这里我们采用后者,单独部署数据库容器。

1、docker-compose


# 官方文档# https://hub.docker.com/r/linuxserver/mariadb# https://mariadb.com

---version: "3"# 最后编辑时间:2024-03-11services:  mariadb:    image: mariadb    # 镜像地址    container_name: mariadb    # 容器名字    hostname: mariadb    # 主机名    volumes:      - /volume4/docker/mariadb:/config      # 配置文件目录    environment:      - MYSQL_ROOT_PASSWORD=mariadb      # mariadb管理者密码,账户为root,预设为mariadb      # 不推荐其他容器都直接使用root管理者账号使用数据库,而是在数据库中创建子账号来访问子数据库      - PUID=1000      - PGID=100      # 用户和用户组权限,ssh中使用“id 用户名”查看,用户组一般为100(users)      # 第一个用户而言,群晖为1026,新绿联为1001,linux类系统为1000,后续用户均+1      - UMASK=022      # 默认创建新文件的权限,一般写022      - TZ=Asia/Shanghai      # 时区      # - REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql      # 远程连接别的服务器上的数据库,需要就写    network_mode: bridge    ports:      - 3306:3306/tcp      # 非WebUI网页界面,直接调用即可    restart: always    # 重启策略,可根据实际情况而选择 no/always/unless-stopped/on-failure/on-failure:3

部署成功后开始进行简单配置


2、连接到MariaDB服务器


sudo docker exec -it mariadb bash3、用root账号登录

mysql -u root -p # 密码为上面创建的MYSQL_ROOT_PASSWORD如果出现MySQL command not found,参考文末的容器内安装mysql客户端

4、创建新的数据库

CREATE DATABASE fireflydb; # 数据库名5、创建新用户并赋予数据库权限

CREATE USER 'fireflyiii'@'%' IDENTIFIED BY 'firefly'; # 前面是数据库用户名、后面是对应用户名的数据库密码GRANT ALL PRIVILEGES ON fireflydb.* TO 'fireflyiii'@'%'; # 给新创建的用户所有权限FLUSH PRIVILEGES; # 刷新一下至此数据库容器已创建完毕,后续其他容器如果有需要使用数据库的,每个新的容器我都会创建一个额外的数据库用户和密码,然后再配置上内网ip地址加上上面mariadb容器的3306端口就行。

容器内安装mysql客户端

1、进入mariadb容器

sudo docker exec -it mariadb bash2、安装mysql客户端


apt-get updateapt-get install mysql-client -y

选择订阅-通过 Docker 订阅在协作、安全性和支持之间找到完美的平衡!
在线客服
联系方式

热线电话

18221674630

上班时间

周一到周五

公司电话

18221674630

二维码
线
获取免费体验资格

提交后,我们将在3个小时内与您联系