# docker-compose.yml

version: "3.5"
services:
  mongo:
    image: mongo:4.1.6
    container_name: mongo
    hostname: mongo
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
    volumes:
      - ./data:/data/db
    networks:
      - mongo-network

  mongo-express:
    image: mongo-express
    container_name: mongo-express
    hostname: mongo-express
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: admin
      ME_CONFIG_MONGODB_ADMINPASSWORD: admin
      ME_CONFIG_SITE_BASEURL: /mon/
    networks:
      - mongo-network

networks:
  mongo-network:
    name: mongo-network
    driver: bridge

单个库设置权限

mongo shell

docker run -it --rm  --network mongo-network mongo:4.1.6 \
    mongo --host mongo \
        -u root \
        -p root
# 切换到要使用的数据库
use mongo-demo

# 创建一个用户
db.createUser(
{
user:'test',
pwd:'test',
roles:[{role:'dbOwner',db:'mongo-demo'}]
}
)

此时可以远程连接使用了