我是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
我做错了什么恶魔?我怎样才能弄清楚发生了什么?
答案 0 :(得分:2)
您--link
选项的值错误。 docker run
命令的--link选项将容器名称或ID 作为值,后跟:
后跟别名(可以是您想要的任何内容)。
你对--link dockerfile/elasticsearch:es
做错的是传入一个Docker镜像名而不是一个docker容器名/ id。
首先,您需要一个用于ElasticSearch的运行容器:
sudo docker run -d -p 9300:9300 --name myelasticsearch dockerfile/elasticsearch
然后,您可以运行链接到名为myelasticsearch
sudo docker run -d -e LOGSTASH_CONFIG_URL=pathtomyconfig --link myelasticsearch:es -p 9292:9292 -p 9200:9200 pblittle/docker-logstash