在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] -> 容器名


生产环境:

开发环境:




posted @ 2024-07-19 11:29  未来的羁绊  阅读(21)  评论(0编辑  收藏  举报