当前位置: 首页 > 工具软件 > Mongo-express > 使用案例 >

docker-compose一键部署mongo和mongo-express

皮弘博
2023-12-01

创建目录

用来挂载mongodb的数据目录、配置文件、日志目录

mkdir data/config
mkdir data/log
mkdir data/db

编写docker-compose.yaml文件

version: "3.1"

services:
    mongo:
        image: mongo:6.0.2
        container_name: mongo
        ports:
            - 27017:27017
        restart: on-failure:10
        environment:
            TZ: Asia/Shanghai
            MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
            MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
        volumes:
            - /etc/localtime:/etc/localtime  # 时区
            - /home/mayanan/mongodb/data/db:/data/db  # 挂载数据目录
            - /home/mayanan/mongodb/data/log:/var/log/mongodb  # 挂载日志目录
            - /home/mayanan/mongodb/data/config:/etc/mongo  # 挂载配置目录

    mongo-express:
        image: mongo-express
        container_name: mongo-express
        restart: on-failure:10
        ports:
            - 8081:8081
        links:
            - mongo:mongodb
        depends_on:
            - mongo
        environment:
            ME_CONFIG_MONGODB_SERVER: mongodb
            ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_USERNAME}
            ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_PASSWORD}
            # ME_CONFIG_MONGODB_URL: mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@mongo:27017/
            ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_USERNAME}
            ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_PASSWORD}

networks:
    default:
        name: my-docker-compose-network

记得在当前目录下创建.env文件,将用户名和密码写入到.env文件中:

MONGO_USERNAME=admin
MONGO_PASSWORD=123456

查看用户名和密码在docker-compose.yaml中是否渲染成功:

sudo docker-compose config

启动mongo服务和mongo-express服务

sudo docker-compose up

报错:mongo-express无法连接mongo
解决办法:

# 重启mongo-express
sudo docker start mongo-express

查看所有数据库报错解决

  1. 进入docker的mongo中去
    sudo docker exec -it mongo /bin/bash
  2. 切换到bin目录下
    cd /bin
  3. 通过终端连接mongo服务
    mongosh
  4. 查看所有数据库
    show dbs
    报错:MongoServerError: command listDatabases requires authentication
    解决办法:
use admin
db.auth("username","password")

返回结果:

{ ok: 1 }

代表登录成功,在此查看所有数据库:

show dbs;

查询结果:

admin   100.00 KiB
config   60.00 KiB
local    72.00 KiB

docker hub文档
博客文档
报错解决参考文档

访问mongo-express服务

浏览器输入:ip:8081,输入用户名密码登录即可。

 类似资料: