文章目录
-
- [dc 部署Mariadb服务](#dc 部署Mariadb服务)
- [dc 部署redis](#dc 部署redis)
- [dc 部署MongoDB](#dc 部署MongoDB)
dc 部署Mariadb服务
新建yml文件
yml
services:
mariadb:
image: mariadb:10.11.8
container_name: mariadb
restart: always
ulimits:
nofile:
soft: 65536
hard: 65536
ports:
- "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=2
environment:
TZ: Asia/Shanghai
MARIADB_ROOT_PASSWORD: "Password1234"
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin
restart: always
ports:
- "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 Mypass123
dc 部署MongoDB
yml
version: '3.8'
services:
mongodb:
image: mongo:7.0.32
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin@1234
ports:
- "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-net
mongo-express:
image: mongo-express
restart: always
ports:
- "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-net
networks:
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界面