docker部署mongodb實(shí)踐

參考官方文檔

-docker hub官網(wǎng)
-mongodb官網(wǎng)

docker部署redis實(shí)踐看這里
docker部署mysql實(shí)踐看這里

獲取鏡像

docker pull  mongo:4.1.6   //:4.1.6    為版本標(biāo)簽也可使用 docker pull mongo 獲取最新版本

查看獲取的鏡像

docker images 

顯示:

wt-001% docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              5d2989ac9711        2 weeks ago         95MB
mongo               latest              7177e01e8c01        2 weeks ago         393MB
centos              7                   1e1148e4cc2c        6 weeks ago         202MB
mysql               latest              f991c20cb508        2 months ago        486MB
wt-001% 

上面一行 mongo 就是

創(chuàng)建數(shù)據(jù)卷進(jìn)行數(shù)據(jù)持久化

在啟動(dòng)容器之前,我先創(chuàng)建一個(gè)數(shù)據(jù)卷來(lái)進(jìn)行持久化,當(dāng)然也可以直接-v進(jìn)行指定,我這里就將數(shù)據(jù)卷交給docker進(jìn)行管理:

docker volume create mysql

查看創(chuàng)建的volume:

docker volume ls

顯示:

wt-001% docker volume ls
DRIVER              VOLUME NAME
local               edbab220979d558961256a279521d9f8a6a04790ae99a0b50e8c30da9247a7b5
local               mongodb
local               mysql
local               redis
wt-001% 

上面 mongo 就是

啟動(dòng)容器

wt-001% docker container run -p27017:27017  --restart=always  --mount source=mongodb,destination=/var/lib/mongodb -v /etc/localtime:/etc/localtime --name mongodb -d mongo 

注意:
如果在運(yùn)行 docker container run XXXX 容器時(shí)沒(méi)有設(shè)置--restart=always選項(xiàng),則在重新啟動(dòng)系統(tǒng)后,這些容器將不會(huì)自動(dòng)啟動(dòng)。

命令說(shuō)明:

1.docker container run :?jiǎn)?dòng)一個(gè)容器并運(yùn)行。以前版本直接用docker run,后來(lái)我估計(jì)是為了更細(xì)分職責(zé),docker添加了manager command,即docker container,docker image等等。這樣符合了模塊化的思想,職責(zé)更明確(個(gè)人想法)。
2. -p 27017:27017 :宿主機(jī)的27017端口與容器的27017端口進(jìn)行綁定。這樣外部可以通過(guò)訪問(wèn)宿主機(jī)的27017端口進(jìn)而訪問(wèn)到容器中的27017端口。
3. --mount source=mysql,destination=/var/lib/mongodb :數(shù)據(jù)卷進(jìn)行綁定。source是指的上面我們?cè)谒拗鳈C(jī)創(chuàng)建出來(lái)的volume,destination即我們要與容器中的哪個(gè)數(shù)據(jù)卷進(jìn)行綁定。當(dāng)然綁定數(shù)據(jù)卷還可以用-v 宿主機(jī)數(shù)據(jù)卷:容器數(shù)據(jù)卷進(jìn)行綁定。
4. -v /etc/localtime:/etc/localtime :設(shè)定容器的時(shí)間與宿主機(jī)保持一致。
5. --name mongodb :設(shè)置容器的名稱mysql。注意:容器名稱是唯一的。
6. -d mongo :告訴容器在后臺(tái)守護(hù)進(jìn)程方式運(yùn)行 mongo

在容器中登錄 mysql

docker container exec -it mongodb  bash

命令說(shuō)明:

  1. docker container exec 進(jìn)入容器

  2. -t 讓docker分配一個(gè)偽終端,并綁定到容器的標(biāo)準(zhǔn)輸入上

  3. -i 讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)

  4. mongodb 是容器的名字

**這時(shí)你會(huì)進(jìn)入容器的終端界面

wt-001% docker container exec -it mongodb bash
root@e41b6c450e6c:/# ls
bin  boot  data  dev  docker-entrypoint-initdb.d  etc  home  js-yaml.js  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@e41b6c450e6c:/# 

獲取運(yùn)行mongo容器IP

wt-001% docker container port mongodb
27017/tcp -> 0.0.0.0:27017

則此時(shí)redis容器IP地址為:0.0.0.0

遠(yuǎn)程登陸mongodb

image.png
image.png
image.png

如上圖連接成功

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容