第一次执行docker-composer up 的时候没有任何问题的,也都能正常连上,后来我改了一下mongodb的密码(.env)重新docker-composer up时就登陆不上了!

后来研究了一下发现第一次安装的时候,有脚本会给你自动创建账号,账号和密码就是你.env的账号密码。下次再docker-composer up 的时候就不会再次初始化了。所以一直提示error: authentication failed.

那怎么判断是否需要初始化账号?秘诀就在于“数据目录是否存在”,也就是挂载mongodb数据目录volumes:mongodb_data:/data/db,

所以解决方案就是把挂载盘重新换一个目录。 再重新docker-composer up就好了

docker-composer.yaml

version: '3'
  mongo:
    image: mongo
    restart: always
    container_name: mongo-server
    ports:
      - 27017:27017
    volumes:
      - mongodb_data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD}
volumes:      
  mongodb_data:
    driver: local
    driver_opts:
      type: none
      device: /path/server/mongodb-data
      o: bind

.env

MONGO_ROOT_USERNAME=root
MONGO_ROOT_PASSWORD=123456
Logo

一站式 AI 云服务平台

更多推荐