一、Docker是什么?
Docker是一個開源工具,能將一個WEB應用封裝在一個輕量級,便攜且獨立的容器里,然后可以運行在幾乎任何服務環(huán)境下。
Docker的容器能使應用跑在任何服務器上并且表現(xiàn)一致。一個開發(fā)者在筆記本上建立的一個容器,能跑在很多環(huán)境下,如:測試環(huán)境,生產(chǎn)環(huán)境,虛擬機上,VPS,OpenStack集群,公用的電腦等等
Docker的一般使用在以下幾點:
- 自動化打包和部署應用
- 創(chuàng)造一個輕量級的,私人的 PAAS 環(huán)境
- 自動化測試和連續(xù)的 整合/部署
- 部署WEB應用,數(shù)據(jù)庫和后端服務
所以,Docker是一個系統(tǒng)級兼容的容器,它采用Linux Container技術(shù)構(gòu)建一個虛擬環(huán)境,用戶可以在這個環(huán)境下安裝各種應用來提供服務,并且這個環(huán)境可以隨時創(chuàng)建或銷毀,不會影響宿主環(huán)境。
二、Elasticsearch是什么?
Elasticsearch也使用Java開發(fā)并使用Lucene作為其核心來實現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。
不過,Elasticsearch不僅僅是Lucene和全文搜索,我們還能這樣去描述它:
- 分布式的實時文件存儲,每個字段都被索引并可被搜索
- 分布式的實時分析搜索引擎
- 可以擴展到上百臺服務器,處理PB級結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
總之,ES是一個牛逼的搜索存儲引擎。
三、創(chuàng)建Docker 鏡像
Elasticsearch官方在Docker Hub上已經(jīng)有提供鏡像,如果沒有額外需求,執(zhí)行下面這個命令就可以直接使用Elasticsearch官方提供的鏡像:
docker run -d -p 9200:9200 –name=”es” elasticsearch:2.3.5
要額外裝一個Elasticsearch的head插件,方便調(diào)試,做了一個鏡像,Dockerfile
FROM elasticsearch:2.3.5
RUN /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
EXPOSE 9200
進入Dockerfile所在的文件夾,執(zhí)行以下命令:
docker build –tag=es_ezio:2.3.5 .
然后執(zhí)行docker images 就能看到剛才創(chuàng)建的鏡像了
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
es_ezio 2.3.5 d66c3f2ed24f About an hour ago 348.8 MB
docker.io/elasticsearch 2.3.5 1c3e7681c53c 17 months ago 346.4 MB
四、啟動容器及服務
上一步我們只是制作了一個Docker鏡像,還沒有創(chuàng)建Docker容器。關(guān)于Docker中鏡像和容器的關(guān)系,可以類比為操作系統(tǒng)中的程序和進程,或者面向?qū)ο笳Z言中的Class和Instance。我們必須從鏡像創(chuàng)建出容器才能運行我們的服務(也就是Elasticsearch服務)。
第一次創(chuàng)建Docker容器,執(zhí)行以下命令:
docker run -d -p 9200:9200 –name=”es_ezio” es_ezio:2.3.5
Elasticsearch的默認端口是9200,我們把宿主環(huán)境9200映射到Docker容器中的9200端口,這樣我們就可以直接訪問宿主環(huán)境的9200端口就可以訪問到Docker容器中的Elasticsearch服務了,同時我們把這個容器命名為es_ezio。
如果一切順利,訪問 http://127.0.0.1:9200/_plugin/head/
這樣,我們就完成了用Docker提供Elasticsearch服務,而不污染宿主機環(huán)境了,這樣還有一個好處,如果想同時啟動多個不同版本的Elastcsearch或者其他服務,Docker也是一個理想的解決方案。
更多Docker相關(guān)教程見以下內(nèi)容:
Linux 下的 Docker 安裝與使用 http://www.0106606.com/Linux/2018-06/152996.htm
CentOS 7安裝Docker應用容器引擎 http://www.0106606.com/Linux/2018-06/152856.htm
CentOS 7.3環(huán)境安裝Docker 18.03 http://www.0106606.com/Linux/2018-05/152356.htm
使用Docker分分鐘啟動常用應用 http://www.0106606.com/Linux/2017-04/142649.htm
CentOS 7使用Docker搭建GitLab服務器 http://www.0106606.com/Linux/2018-04/151725.htm
30分鐘帶你了解Docker http://www.0106606.com/Linux/2018-08/153346.htm
Docker容器常見操作詳解 http://www.0106606.com/Linux/2018-08/153685.htm
Docker發(fā)布應用程序指南 http://www.0106606.com/Linux/2018-08/153405.htm