找不到dockerfile / elasticsearch的实体

我新来的Docker和即时通讯有问题。

我试图用这个命令启动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 

我做错了什么魔鬼? 我怎样才能弄清楚发生了什么?

你的--link选项的值是错误的。 docker docker run命令的–link选项将一个容器名称或id作为值,接着是:后跟一个别名(可以是任何你想要的)。

你做错了 – --link dockerfile/elasticsearch:es是传入一个Docker镜像名称,而不是docker容器名称/ ID。

首先,您需要一个运行ElasticSearch的容器:

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

然后你可以运行连接到名为myelasticsearch的容器的myelasticsearch容器:

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