开源欧拉(openEuler )docker 安装mariadb
在MySQL命令行中验证数据目录。# 修改目录权限,确保容器可以访问。安装docker-compose。# 启动Docker服务。# 连接到MariaDB。# 安装Docker。
修改网络配置后重启网络:
systemctl restart NetworkManager
# 安装Docker sudo dnf install docker -y # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker
docker 配置代理:
vim /etc/docker/daemon.json
{
"registry-mirrors":[
"https://docker.1ms.run"
],
"dns": ["8.8.8.8", "114.114.114.114"],
"data-root": "/home/docker"
}
重启docker服务:
sudo systemctl restart docker
安装docker-compose
下载到指定目录:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
# 创建项目目录
mkdir -p /data/mariadb/{data,config,logs}
cd /data/mariadb/
vim config/my.cnf
[mysqld]
datadir=/var/lib/mysql
port=3306
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=1000
slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow.log
skip-name-resolve
lower_case_table_names=1
max_allowed_packet=32M
character-set-server=utf8
max_connections = 1000
group_concat_max_len = 102400
innodb_file_per_table
innodb_file_format = Barracuda
innodb_strict_mode = 0
expire_logs_days=2
创建 docker-compose.yml 文件:
vim docker-compose.yml
version: '3.8'
services:
mariadb:
image: mariadb:10.5
container_name: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "HN#jj#2025"
MYSQL_DATABASE: "myapp"
MYSQL_USER: "appuser"
MYSQL_PASSWORD: "HN#jj#2025"
TZ: "Asia/Shanghai"
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql/data
- ./config/my.cnf:/etc/mysql/conf.d/my.cnf:ro
- ./logs:/var/log/mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --datadir=/var/lib/mysql/data
ulimits:
nproc: 65535
nofile:
soft: 26666
hard: 46666
# 修改目录权限,确保容器可以访问 sudo chown -R 1000:1000 ./data ./logs sudo chmod -R 755 ./data ./logs ./config
# 启动服务 docker-compose up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f
# 连接到MariaDB docker exec -it mariadb mysql -u root -p # 在MySQL命令行中验证数据目录 SELECT @@datadir;
-- 创建用户
CREATE USER 'xfyh'@'%' IDENTIFIED BY 'HN#xuefen#2025';
-- 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'xfyh'@'%';
flush privileges;
使用数据库自带工具备份:
挂载备份目录:
mount -t cifs -o username=administrator,password=Jjjt@china //192.168.32.188/diandaData /winshare
源数据库导出:
docker exec mariadb sh -c 'exec mariadb-dump -uxfyh -p"HN#xuefen#2025" --databases xfyh' > /winshare/xfyh/20251027.sql 2> error.log
自动执行:
vim mariadbBackupRun.sh
#!/bin/bash
current_day=$(date +"%Y-%m-%d")
docker exec mariadb sh -c 'exec mariadb-dump -uxfyh -p"HN#xuefen#2025" --databases xfyh' > /winshare/xfyh/$current_day.sql 2> error.log
chmod +x mariadbBackupRun.sh
crontab -e
30 1 * * 0-6 sh /root/mariadbBackupRun.sh 2>&1 > /root/mariadbBackup/log_incre_$(date +\%Y-\%m-\%d-\%H-\%M)
还原到目标数据库:
docker exec -i mariadb sh -c 'exec mysql -uxfyh -p"HN#xuefen#2025"' < /winshare/xfyh/20251027.sql
启动docker 数据库:
#!/bin/bash
docker-compose down && docker-compose up -d
docker-compose安装redis集群配置文件示例:
services:
redis-6379:
image: redis:8.2.2
container_name: redis-6379
restart: always
ports:
- "172.16.0.100:6379:6379"
- "172.16.0.100:16379:16379"
volumes:
- ./redis-conf/redis-6379.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6379:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
redis-6380:
image: redis:8.2.2
container_name: redis-6380
restart: always
ports:
- "172.16.0.100:6380:6380"
- "172.16.0.100:16380:16380"
volumes:
- ./redis-conf/redis-6380.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6380:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
redis-6381:
image: redis:8.2.2
container_name: redis-6381
restart: always
ports:
- "172.16.0.100:6381:6381"
- "172.16.0.100:16381:16381"
volumes:
- ./redis-conf/redis-6381.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6381:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
redis-6382:
image: redis:8.2.2
container_name: redis-6382
restart: always
ports:
- "172.16.0.100:6382:6382"
- "172.16.0.100:16382:16382"
volumes:
- ./redis-conf/redis-6382.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6382:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
redis-6383:
image: redis:8.2.2
container_name: redis-6383
restart: always
ports:
- "172.16.0.100:6383:6383"
- "172.16.0.100:16383:16383"
volumes:
- ./redis-conf/redis-6383.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6383:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
redis-6384:
image: redis:8.2.2
container_name: redis-6384
restart: always
ports:
- "172.16.0.100:6384:6384"
- "172.16.0.100:16384:16384"
volumes:
- ./redis-conf/redis-6384.conf:/usr/local/etc/redis/redis.conf
- ./data/data-6384:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- redis-cluster-net
networks:
redis-cluster-net:
driver: bridge
ipam:
driver: default
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)