使用Docker-Compose安装MongoDB

10,928 阅读1分钟

安装Docker-Compose

[root@instance-1 bin]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0   1577      0 --:--:-- --:--:-- --:--:--  1582
100 12.1M  100 12.1M    0     0  18.3M      0 --:--:-- --:--:-- --:--:-- 80.9M
[root@instance-1 bin]# sudo chmod +x /usr/bin/docker-compose

查看Docker-Compose的version

[root@instance-1 bin]# docker-compose -version
docker-compose version 1.29.2, build 5becea4c

如果想卸载Docker-Compose

sudo rm /usr/local/bin/docker-compose

配置MongoDB的目录和文件。

新建MongoDB目录,子目录database和docker-compose.yml.

docker-compose.yml内容如下:

version: "3.8"
services:
  mongodb:
    image: mongo
    container_name: mongodb
    ports:
      - 27017:27017
    volumes:
      - ./database:/data/db
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=admin
      - ME_CONFIG_MONGODB_ADMINPASSWORD=admin
      - ME_CONFIG_MONGODB_SERVER=mongodb

networks:
  default:
    name: mongodb_network

启动docker-compose,运行MongoDB

[root@instance-1 MongoDB]# docker-compose -f docker-compose.yml up -d
Creating network "mongodb_network" with the default driver
Creating mongodb       ... done
Creating mongo-express ... done

进入MongoDB容器, 进入MongoDB shell

docker exec -it mongodb /bin/bash
mongo mongodb://localhost:27017 -u admin -p admin

然后查看数据库

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB

切换到admin的数据库,新建用户

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}
> 

关闭数据库

[root@instance-1 MongoDB]# docker-compose down
Stopping mongo-express ... done
Stopping mongodb       ... done
Removing mongo-express ... done
Removing mongodb       ... done
Removing network mongodb_network