上文: win10安裝docker入門
在進(jìn)行以下操作之前唁桩,我們需要先通過Docker設(shè)置一個(gè)共享的驅(qū)動(dòng)器,為什么要先設(shè)置呢耸棒,因?yàn)閃in10的權(quán)限要求比較高荒澡,不允許軟件自行共享文件夾。
接下來我們來看Win10如何設(shè)置共享數(shù)據(jù)卷与殃,首先鼠標(biāo)右擊任務(wù)欄右下角的Docker小圖標(biāo)单山,然后選擇Settings...菜單,在彈出的界面中點(diǎn)擊Shared Drivers選項(xiàng)卡幅疼,在右側(cè)勾選需要共享的驅(qū)動(dòng)器(此時(shí)有可能會(huì)彈框讓你輸入系統(tǒng)的用戶名和密碼)米奸,接著點(diǎn)擊Apply按鈕即可。如下圖所示:
另外要確保為docker分配的資源足夠爽篷,剛開始不才為docker分配的資源很少悴晰,結(jié)果出現(xiàn)很卡的情況。現(xiàn)在的設(shè)置如下:
1.搜索elasticsearch
C:\Users\Administrator>docker search elasticsearch:5.6.8
2.下載elasticsearch鏡像
C:\Users\Administrator>docker pull elasticsearch:5.6.8
3.創(chuàng)建容器
docker run -di --name=myes -p 9200:9200 -p 9300:9300 elasticsearch
說明如下:
- -d: 后臺(tái)運(yùn)行容器狼忱,并返回容器ID膨疏;
- -i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用钻弄;
- --name=tensquare_es:將容器命名為my_es
- -p: 端口映射佃却,格式為:主機(jī)(宿主)端口:容器端口
4.瀏覽器輸入地址:http://127.0.0.1:9200/即可看到如下信息:
(由于不才的docker是安裝在本機(jī)上的,所以這里是127.0.0.1)
5.SpringBoot應(yīng)用報(bào)錯(cuò)
此時(shí)窘俺,不才的SpringBoot中的yaml設(shè)置如下:
spring:
data:
elasticsearch:
cluster‐nodes: 127.0.0.1:9300
運(yùn)行測(cè)試程序饲帅,發(fā)現(xiàn)會(huì)報(bào)如下錯(cuò)誤:
NoNodeAvailableException[None of the configured nodes are available:
[{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}{127.0.0.1}
{127.0.0.1:9300}]
]
at
org.elasticsearch.client.transport.TransportClientNodesService.ensureNodes
AreAvailable(TransportClientNodesService.java:347)
at
org.elasticsearch.client.transport.TransportClientNodesService.execute(Tra
nsportClientNodesService.java:245)
at
org.elasticsearch.client.transport.TransportProxyClient.execute(TransportP
roxyClient.java:59)
這是因?yàn)閑lasticsearch從5版本以后默認(rèn)不開啟遠(yuǎn)程連接,需要修改配置文件
6.我們進(jìn)入容器
C:\Users\Administrator>docker exec -it my_es /bin/bash
root@fe7ebf1c90bf:/usr/share/elasticsearch# ls
NOTICE.txt README.textile bin config data lib logs modules plugins
root@fe7ebf1c90bf:/usr/share/elasticsearch# cd config
root@fe7ebf1c90bf:/usr/share/elasticsearch/config# ls
elasticsearch.yml log4j2.properties scripts
root@fe7ebf1c90bf:/usr/share/elasticsearch/config# pwd
/usr/share/elasticsearch/config
root@fe7ebf1c90bf:/usr/share/elasticsearch/config# exit
exit
此時(shí)瘤泪,我們看到elasticsearch所在的目錄為/usr/share/elasticsearch ,進(jìn)入config看到了配置文件:elasticsearch.yml
我們通過vi命令編輯此文件灶泵,尷尬的是容器并沒有vi命令 ,咋辦对途?
思路一:我們可以采用文件掛載的方式創(chuàng)建容器赦邻,這樣我們就可以通過修改宿主機(jī)中的某個(gè)文件來實(shí)現(xiàn)對(duì)容器內(nèi)配置文件的修改。
思路二:當(dāng)然也可以先修改后拷貝進(jìn)去实檀,然后重啟容器惶洲。
以下采用的是思路一的方案:
7.拷貝配置文件到宿主機(jī)
C:\Users\Administrator>d:
因?yàn)楣蚕淼尿?qū)動(dòng)器為D盤按声,所以這里先進(jìn)入D盤
D:\>docker cp myes:/usr/share/elasticsearch/config/elasticsearch.yml D:/docker/elasticsearch.yml
這里如果不能直接cp到D盤,可通過掛載方式:docker run 命令中使用-v 參數(shù)恬吕,例如 -v D:/docker:/docker ,將D盤文件夾掛載到容器的/docker目錄签则,此時(shí)兩者指向同一地址,可以通過/docker間接完成任務(wù)铐料,進(jìn)入容器后通過df -h命令可以看到渐裂。
8.停止和刪除原來創(chuàng)建的容器
docker stop myes
docker rm myes
9.重新執(zhí)行創(chuàng)建容器命令
D:\>docker run -di --name=myes -p 9200:9200 -p 9300:9300 -v D:/docker/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch
這里將D:/docker/elasticsearch.yml掛載到/usr/share/elasticsearch/config/elasticsearch.yml,也就是說修改D:/docker/elasticsearch.yml的內(nèi)容就相當(dāng)于修改myes容器的/usr/share/elasticsearch/config/elasticsearch.yml文件钠惩。
10.修改D:/docker/elasticsearch.yml文件
將 transport.host: 0.0.0.0 前的#去掉后保存文件退出柒凉。其作用是允許任何ip地址訪問elasticsearch .開發(fā)測(cè)試階段可以這么做,生產(chǎn)環(huán)境下指定具體的IP妻柒。
11.重啟容器
docker restart myes
再次測(cè)試程序扛拨,正常運(yùn)行。
至此举塔,Win10中Docker安裝Elasticsearch完成。
下文: Docker安裝IK分詞器