在Windows开发环境和Linux生产环境,运行相同的docker-compose.yml文件,存在镜像版本不一致的情况。
版本不同会导致很多问题,我遇到的则是,在初始化数据库时,在开发环境可以正常执行;但是生产环境的mongodb数据库版本过低,导致无法成功执行数据库的初始化脚本。
运行的 docker-compose.yml
文件的部分内容如下:
# docker-compose.yml
....
app-mongodb:
image: mongo:latest
container_name: app-mongodb
restart: unless-stopped
# 开启用户名密码验证
command: mongod --auth
# 提供伪终端
# tty: true
environment:
TZ: Asia/Shanghai # 指定时区
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
MONGO_INITDB_DATABASE: logo
# 用户名:mongodb,密码:mongodb2024,在mongo-init.js初始化脚本中创建
# MONGO_INITDB_USERNAME: mongodb
# MONGO_INITDB_PASSWORD: mongodb2024
ports:
- 27017:27017
volumes:
# - ./db/mongodb/init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh
- ./db/mongodb/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
# - ./db/mongodb/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- ./db/mongodb/db:/data/db
- ./db/mongodb/mongoconfig:/data/configdb
....
问题原因:
指定的镜像版本不严谨 image: mongo:latest
这个latest版本会导致服务器镜像为5.0.5,但是开发环境却是7.0.11;
解决方案:
将版本指定为具体版本号,如: image: mongo:7.0.11
,这样就不会出现版本不一致的情况了~
如何查看Mongodb的版本?
方法一:使用Navicat查看
使用Navicat查看Mongodb的数据库版本:
方法二:docker命令
使用docker命令进入mongodb容器中查看数据库版本:
# 进入docker容器
sudo docker exec -it 1cccbe9acd65 bash
# mongosh连接到Mongo实例
mongosh
# 查看版本信息
db.version()
使用Navicat查看Mongodb的数据库版本:
Redis如何查看版本信息
使用docker命令进入redis容器中查看版本:
执行命令:
# 进入app-redis容器,并查看版本信息
sudo docker exec -it [app-redis] redis-server -v
说明: [app-redis] -> 容器名
生产环境:
开发环境:
分类:
docker
标签:
docker
, docker-desktoop
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)