例如,使用docker 拉取下來一個要用的鏡像esdocker
docker pull elasticsearch:5.6.9
此時es的鏡像存在與服務器上bash
docker images
對於你運行鏡像爲一個容器的命令,你會使用服務器
docker run -d --name es1 -p 9200:9200 -p 9300:9300 --restart=always elasticsearch:5.6.9
這是最簡單的一個運行命令,只是標明瞭app
1》你要運行的鏡像是 elasticsearch:5.6.9 【鏡像名稱:版本號】elasticsearch
2》--name指定了你是用本鏡像運行起來的容器名字叫 es1rest
3》-p 9200:9200 指定了本容器對外的端口號是多少code
4》--restart=always 指定本容器隨着 docker重啓而重啓blog
容器運行後,就是一個獨立的存在,容器內部是有完整的目錄的it
使用命令ast
docker exec -it es1 /bin/bash
命令很簡單 就是
docker exec -it 容器名或者ID /bin/bash
就能夠進入已經運行起的容器內部。【由於每一個容器都是獨立存在的,因此容器內部的好多命令都不能用,例如vi 例如ll】
爲何要進入docker容器內部呢?
由於你若是要使用複雜的啓動容器命令,進行掛載的操做,就須要瞭解es本身的配置文件在容器中的位置
以下命令:
docker run -d --name es1-master -p 9200:9200 -p 9300:9300 --restart=always -v /apps/elasticSearch/es1-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /apps/elasticsearch/es1_data:/usr/share/elasticsearch/data elasticsearch:5.6.9
除了最基本的命令以外,這個複雜命令進行了配置文件以及data目錄的掛載
-v /apps/elasticSearch/es1-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml
本參數的說明:標識 將 -v /apps/elasticSearch/es1-master.yml【宿主機的實際自定義配置文件】:【掛載】/usr/share/elasticsearch/config/elasticsearch.yml【docker容器 中默認配置文件】
簡單來講,就是 你使用docker run運行起來的docker容器 es1-master,這個容器實際使用的配置文件是 你宿主機中自定義的配置文件/apps/elasticSearch/es1-master.yml ,使用這個自定義文件替換了容器內默認的配置文件/usr/share/elasticsearch/config/elasticsearch.yml
同理,-v /apps/elasticsearch/es1_data:/usr/share/elasticsearch/data 的含義就是 你的docker容器es1-master 啓動之後的date數據,是存放在/apps/elasticsearch/es1_data中的,而不是存在默認的容器內的/usr/share/elasticsearch/data目錄下的!!!!
而實現掛載的好處,就是你若是想要修改本容器的參數,就不用每次進入容器內部去修改配置文件,而只須要在宿主機上修改自定義的配置文件,而後重啓你的容器就能夠了
最後,退出docker容器的命令就是
exit