通过命令创建

当前最新的 MongoDB 版本是 4.2.2,下面使用 Docker 简单示例下环境搭建:

  1. 启动 MongoDB,设置 root用户及密码
    1. docker run -d -p 27017:27017 --name mongodb --volume /usr/local/mongodata:/data/db -e MONGO_INITDB_ROOT_USERNAME=mongoroot -e MONGO_INITDB_ROOT_PASSWORD=mongopw mongo:4.2.2
    2.启动 Mongo-Express,设置登录用户及密码
    1. docker run -it --restart=always --name mongo-express --link mongodb:mongo-db -d -p 8081:8081 -e ME_CONFIG_OPTIONS_EDITORTHEME="3024-night" -e ME_CONFIG_BASICAUTH_USERNAME="mongoexpress" -e ME_CONFIG_BASICAUTH_PASSWORD="mongoexpress" -e ME_CONFIG_MONGODB_ADMINUSERNAME="mongoadmin" -e ME_CONFIG_MONGODB_ADMINPASSWORD="mongoadmin" mongo-express
    docker network ls可以查看当前所有的 Docker NETWORK

    通过docker compose创建

    安装docker-compose

    之前我们已经通过一键安装脚本安装了python3以及pip3,所以我们直接使用pip3来安装docker-compose
  1. sudo pip3 install docker-compose

通过pip3来安装的优势是一般不收网速限制,再一个就是可自动安装依赖。

编辑docker-compose文件

通过docker compose文件来合并上两步操作,创建docker-compose.yml文件并写入以下内容,并根据各自实际情况修改(如端口,磁盘映射,用户名密码等)

  1. version: '3.1'
  2. services:
  3. mongodb:
  4. image: mongo:4.2.2
  5. ports:
  6. - 27017:27017
  7. restart: always
  8. environment:
  9. TZ: Asia/Shanghai
  10. MONGO_INITDB_ROOT_USERNAME: mongoroot
  11. MONGO_INITDB_ROOT_PASSWORD: mongopw
  12. volumes:
  13. - /data/db:/data/db
  14. - /etc/localtime:/etc/localtime
  15. mongo-express:
  16. links:
  17. - mongodb:mongo
  18. image: mongo-express
  19. restart: always
  20. ports:
  21. - 8081:8081
  22. environment:
  23. ME_CONFIG_OPTIONS_EDITORTHEME: 3024-night
  24. ME_CONFIG_BASICAUTH_USERNAME: mongoexpress
  25. ME_CONFIG_BASICAUTH_PASSWORD: mongoexpress
  26. ME_CONFIG_MONGODB_ADMINUSERNAME: mongoroot
  27. ME_CONFIG_MONGODB_ADMINPASSWORD: mongopw

version

compose文件格式版本,将按照该版本语法去执行.yml文件

services

image

ports

暴露端口信息,(HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)。
restart

environment

volumes

卷挂载路径设置,可以设置宿主机与容器的路径映射关系(HOST:CONTAINER)或加上访问模式 (HOST:CONTAINER:ro),挂载数据卷的默认权限是读写(rw),可以通过ro指定为只读。
也可以在主机上挂载相对路径,该路径将相对于当前正在使用的Compose配置文件的目录进行扩展。 相对路径应始终以 . 或者 .. 开始。