文章目录
- dc 部署Mariadb服务
- dc 部署redis
- dc 部署MongoDB
- 初始化自动执行脚本
dc 部署Mariadb服务
新建yml文件
services:mariadb:image:mariadb:10.11.8container_name:mariadbrestart:alwaysulimits:nofile:soft:65536hard:65536ports:-"43306:3306"volumes:-./mariadb/data:/var/lib/mysql-./mariadb/config:/etc/mysql/conf.d/command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--max-allowed-packet=10G--innodb-log-file-size=2G--innodb_flush_log_at_trx_commit=2environment:TZ:Asia/ShanghaiMARIADB_ROOT_PASSWORD:"Password1234"phpmyadmin:container_name:phpmyadminimage:phpmyadminrestart:alwaysports:-"8080:80"environment:-PMA_HOST=mariadb-UPLOAD_LIMIT=10G浏览器访问 http://192.168.142.146:8080
输入用户名密码即可访问该数据库
dc 部署redis
version: '3' services: redis: image: redis:latest container_name: my-redis ports: - "26379:6379" volumes: - /temp/data:/data command: redis-server --requirepass Mypass123dc 部署MongoDB
version:'3.8'services:mongodb:image:mongo:7.0.32container_name:mongodbrestart:alwaysenvironment:MONGO_INITDB_ROOT_USERNAME:adminMONGO_INITDB_ROOT_PASSWORD:admin@1234ports:-"27017:27017"volumes:-./dcmongo/data:/data/db# 数据持久化-./dcmongo/logs:/var/log/mongodb# 日志持久化-./dcmongo/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro# 挂载初始化脚本entrypoint:>bash -c " mkdir -p /var/log/mongodb && chown -R mongodb:mongodb /var/log/mongodb && exec docker-entrypoint.sh mongod --bind_ip_all --logpath /var/log/mongodb/mongod.log "networks:-mongo-netmongo-express:image:mongo-expressrestart:alwaysports:-"8081:8081"environment:ME_CONFIG_MONGODB_URL:"mongodb://admin:admin@1234@mongo:27017/"ME_CONFIG_BASICAUTH_ENABLED:"true"ME_CONFIG_BASICAUTH_USERNAME:"mongoexpressuser"ME_CONFIG_BASICAUTH_PASSWORD:"mongoexpresspass"networks::-mongo-netnetworks:mongo-net:driver:bridge初始化自动执行脚本
初始化脚本需保证data目录无数据的情况下才会执行
// dcmongo/mongo-init.js db = db.getSiblingDB('myapp'); // 切换到目标数据库(如 myapp) db.createUser({ user: 'myuser', pwd: 'mypassword123', roles: [ { role: 'readWrite', db: 'myapp' }, { role: 'read', db: 'otherdb' } ] }); db.products.insert({ name: '初始商品', price: 99.9 }); print("========== 用户 '你的新用户名' 创建成功 =========="); */浏览器访问 http://192.168.142.146:8081
输入用户名密码即可访问express界面