2014-10-20 35 views
1

我對Docker和IM有新問題。找不到dockerfile/elasticsearch的實體

我試着用這個命令來啓動pblittle/docker-logstash容器:

sudo docker run -d -e LOGSTASH_CONFIG_URL=pathtomyconfig --link dockerfile/elasticsearch:es -p 9292:9292 -p 9200:9200 pblittle/docker-logstash 

和我收到以下錯誤:

Error: Could not find entity for dockerfile/elasticsearch 

如果我做sudo docker ps是得到如下:

CONTAINER ID  IMAGE        COMMAND    CREATED    STATUS    PORTS           NAMES 
0021bd567d95  dockerfile/elasticsearch:latest /elasticsearch/bin/e 7 minutes ago  Up 7 minutes  0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp cranky_meitner2 
e900cbb758a5  dockerfile/redis:latest   redis-server /etc/re 12 hours ago  Up 7 minutes  0.0.0.0:6379->6379/tcp       redis 
592a4f8d97f2  dockerfile/redis:latest   redis-server /etc/re 12 hours ago  Up 7 minutes  6379/tcp           cocky_thompson4 

我做錯了什麼魔鬼?我怎樣才能弄清楚發生了什麼?

回答

2

您得到的值爲--link選項錯誤。 docker run命令的--link選項採用容器名稱或ID爲作爲值,後跟:後跟一個別名(可以是任何您想要的)。

你做錯了--link dockerfile/elasticsearch:es是傳入一個Docker鏡像名稱而不是碼頭容器名稱/ ID。

首先你需要ElasticSearch運行的容器:

sudo docker run -d -p 9300:9300 --name myelasticsearch dockerfile/elasticsearch 

然後你可以運行你的logstash集裝箱進行鏈接到名爲myelasticsearch容器:

sudo docker run -d -e LOGSTASH_CONFIG_URL=pathtomyconfig --link myelasticsearch:es -p 9292:9292 -p 9200:9200 pblittle/docker-logstash