• 【部署笔记】docker-compose 安装mongodb,一直重启 + 无法连接


    场景:

    • 客户服务器(内网)
    • 运维人:办公电脑(公司内网)
    • 私有化本地部署 SpringBoot项目 + redis + mongodb +mysql + nigix
    • 连接方式 :独立外网ip做映射(端口号:22,3306等) 
    • 部署方式 docker-compose ,私有容器在一个镜像中
    • 容器间通讯方式网卡ip  12.177.1.10

    报错:

    1. Navicat 和springBoot项目连接mongodb 报错,(外网连接mysql正常)

            No suitable servers found

     

    2. docker ps 查看容器发现mongodb 一直 restarting(N)

    原因:

    1. Navicat 连接mongodb 报错,(连接mysql正常)

    • mongodb 没有正常启动
    • mongodb没有开启ipv6模式

            我们在这里只需要docker内springboot项目和mongodb可以通讯,即可

    (实在没有办法,尝试了几个小时设置支持ipv6模式,或者设置系统禁用ipv6改成ipv4,都无反应)

    2. docker ps 查看容器发现mongodb 一直 restarting(N),无法正常启动

    • 使用docker启动了其它版本mongodb产生数据导致不兼容
    • docker-compose配置异常

    解决方案:

    解决1:将springBoot host设置成服务器网卡IP即可解决连不上mongodb问题

            当然,所有端口都需要映射到docker外部如

    解决2:更改正确的docker-compose.yaml 即可

    1. version: '3.1'
    2. mongo:
    3. image: mongo:4.2.1
    4. restart: always
    5. container_name: mongo
    6. ports:
    7. - 27017:27017
    8. volumes:
    9. - ./mongodb/data/db:/data/db # 挂载数据目录
    10. - ./mongodb/data/log:/var/log/mongodb # 挂载日志目录
    11. privileged: true # 设置容器的权限为root
    12. environment:
    13. MONGO_INITDB_ROOT_USERNAME: root
    14. MONGO_INITDB_ROOT_PASSWORD: xph87510227
    15. deploy:
    16. resources:
    17. limits:
    18. memory: 2G
    19. reservations:
    20. memory: 1G
    21. networks:
    22. default:
    23. external:
    24. name: xph-network

    备注:使用的指令列表

    history > history.txt查看历史执行指令,并输出到当期目录下history.txt文件中
    apt install net-tools安装net-tools,就可以运行ifconfig
    ifconfig查看linux下ip
    docker logs -f -t --tail 1000 xph-service > /mnt/docker/xph.txt实时查看容器xph-service的运行日志最新的1000行,并输出到xph.txt
    docker-compose up -d --build重新编译image,(改变配置的镜像会重新编译)
    docker network inspect xph-network查看network xph-network的详情

  • 相关阅读:
    说Redis是单线程其实不严谨以及一些思考
    java学习第188天,javaWeb学习第47天,复习第23天;p257-262(08/21)-4h
    无线蓝牙耳机什么牌子好?三百内最好的无线耳机推荐
    Redis实战 - 17 Redis事务和乐观锁实现缓存登录图片验证码功能
    【无标题】好消息 突破:IM开源项目OpenIM采用wasm技术实现jssdk
    PDF格式分析(七十一)—— Markup注释
    【项目经理】工作流引擎
    类和对象1:基础学习
    mysql之数据表高级操作
    PHP require/include 区别
  • 原文地址:https://blog.csdn.net/ladymorgana/article/details/126059605