目標:在docker裏安裝MongoDB並且可以通過工具訪問
安裝MongoDB:
docker pull mongo:latest
查看鏡像
運行MongoDB:
docker run -itd --name mongo -p 27017:27017 mongo --auth
-p 27017:27017 :映射容器服務的 27017 端口到宿主機的 27017 端口。外部可以直接通過 宿主機 ip:27017 訪問到 mongo 的服務。(前面是宿主機,在Windows裏就是虛擬機的端口,後面是容器的端口)
--auth:需要密碼才能訪問容器服務。
我們可以通過 docker ps 命令查看容器的運行信息:
0.0.0.0:27017>27017/tcp
指的是本地(也就是宿主機,Windows裏的虛擬機)27017端口映射容器的27017端口
到這已經運行成功了
本地工具連接:
首先進入容器:
docker exec -it mongo bash
進入數據庫管理:
mongo admin
有的可以直接進入:
docker exec -it mongo mongo admin
不過我試了我的不行,得分兩步。
創建用戶:
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
嘗試連接:
db.auth('admin', '123456')
給數據庫授權:
db.grantRolesToUser("admin", [ { role:"dbOwner", db:"admin"} ]) ;
授權得在用戶登錄之後纔可以
然後退出容器:
重啓容器:
查看虛擬機地址:
用工具連接:
可以看到授權了admin數據庫可以打開,其他沒授權的打不開。
這樣我們就可以在本機通過工具連接了,那要是局域網內其他電腦想要連接怎麼辦呢?
我先琢磨琢磨...告辭!