2016-09-28 4 views
1

this docker image으로 도커를 테스트하려고합니다. 상황은 똑바로되어야합니다. 그러나 그렇지 않습니다. 탄력적 인 도커 이미지로 포트 포워딩

sudo docker run -d -p 9200:9200 -p 9300:9300 elasticsearch -Des.node.name="ElasticTestNode" 

가 그럼 난 내 호스트 시스템에서이 명령을 실행하려고 : 나는 성공적으로 어떤 종류의 메시지를보기 위해 기다리고 있었다

# curl -XPUT "http://localhost:9200/movies/movie/3" -d' 
{ 
    "title": "To Kill a Mockingbird", 
    "director": "Robert Mulligan", 
    "year": 1962, 
    "genres": ["Crime", "Drama", "Mystery"] 
}' 

나는 용기를 시작하려면이 명령을 실행. 대신 명령은을 단순히 붙였습니다. 출력이없고 멈추지 않습니다. Ctrl-X를 눌러야합니다.

sudo sudo docker exec -i -t some-docker-id /bin/bash 
[email protected]:/usr/share/elasticsearch# curl -XPUT "http://localhost:9200/movies/movie/3" -d' 
{ 
    "title": "To Kill a Mockingbird", 
    "director": "Robert Mulligan", 
    "year": 1962, 
    "genres": ["Crime", "Drama", "Mystery"] 
}' 
{"_index":"movies","_type":"movie","_id":"3","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}[email protected]:/usr/share/elasticsearch# 

그리고 그것은 성공했다 :

는 생각에서, 나는 고정 표시기 내부 bash 쉘을 시작하고 테스트를 실행했습니다. 나는 무엇을 잘못 했는가?

업데이트 : 내 호스트 시스템에 다른 명령을 시도 :

여기 갇혀
$ curl -XPUT -v "http://localhost:9200/movies/movie/3" -d' 
{ 
    "title": "To Kill a Mockingbird", 
    "director": "Robert Mulligan", 
    "year": 1962, 
    "genres": ["Crime", "Drama", "Mystery"] 
}' 
* Trying 127.0.0.1... 
* Connected to localhost (127.0.0.1) port 9200 (#0) 
> PUT /movies/movie/3 HTTP/1.1 
> Host: localhost:9200 
> User-Agent: curl/7.43.0 
> Accept: */* 
> Content-Length: 139 
> Content-Type: application/x-www-form-urlencoded 
> 
* upload completely sent off: 139 out of 139 bytes 

...

# sudo docker logs docker-id 
[2016-09-28 11:52:16,630][INFO ][node      ] [ElasticTestNode] version[2.4.0], pid[1], build[ce9f0c7/2016-08-29T09:14:17Z] 
[2016-09-28 11:52:16,631][INFO ][node      ] [ElasticTestNode] initializing ... 
[2016-09-28 11:52:17,202][INFO ][plugins     ] [ElasticTestNode] modules [reindex, lang-expression, lang-groovy], plugins [], sites [] 
[2016-09-28 11:52:17,219][INFO ][env      ] [ElasticTestNode] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/sda8)]], net usable_space [5.4gb], net total_space [19.5gb], spins? [possibly], types [ext4] 
[2016-09-28 11:52:17,219][INFO ][env      ] [ElasticTestNode] heap size [990.7mb], compressed ordinary object pointers [true] 
[2016-09-28 11:52:18,816][INFO ][node      ] [ElasticTestNode] initialized 
[2016-09-28 11:52:18,816][INFO ][node      ] [ElasticTestNode] starting ... 
[2016-09-28 11:52:18,877][INFO ][transport    ] [ElasticTestNode] publish_address {172.17.0.22:9300}, bound_addresses {[::]:9300} 
[2016-09-28 11:52:18,881][INFO ][discovery    ] [ElasticTestNode] elasticsearch/LCo5k0dARimsWFXjN1Yu0A 
[2016-09-28 11:52:21,915][INFO ][cluster.service   ] [ElasticTestNode] new_master {ElasticTestNode}{LCo5k0dARimsWFXjN1Yu0A}{172.17.0.22}{172.17.0.22:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) 
[2016-09-28 11:52:21,924][INFO ][http      ] [ElasticTestNode] publish_address {172.17.0.22:9200}, bound_addresses {[::]:9200} 
[2016-09-28 11:52:21,925][INFO ][node      ] [ElasticTestNode] started 
[2016-09-28 11:52:21,960][INFO ][gateway     ] [ElasticTestNode] recovered [0] indices into cluster_state 
+0

재생할 수 없으므로 첫 번째 컬이 내 측면에서 작동합니다. 'curl .... -v'로 더 많은 출력/정보가 있습니까? 'docker 로그 '는 더 많은 정보를 제공합니까? – PierreF

+0

-v를 명령에 추가했습니다. 내 결과보기 –

+0

재부팅 후 OK입니다. 아무 일도 일어나지 않았습니다. –

답변

0

이 고정 표시기의 포트 매핑 때로는 실패 할 것으로 보인다. 나는이 문제를 여러 번 경험했다. 동일한 테스트 스크립트는 부팅 할 때 작동하지만 다른 부팅에는 사용되지 않습니다.

한 가지 일관성은 한 부팅에서 문제가 발생하는 경우 고정 이미지를 다시 시작할 때마다 계속 실패한다는 것입니다. 컨테이너를 버리고 이미지가있는 새 컨테이너를 시작한 후에도 계속 실패합니다. 그것은 docker 데몬의 문제인 것 같습니다. 그것은 나를 위해 작동

sudo docker stop $(docker ps -a -q) 
sudo systemctl restart docker 
sudo docker start $(docker ps -a -q) 

:

내가이 문제를 해결하기위한 방법은 모든 컨테이너를 중지하고 고정 표시기 데몬을 다시 시작하는 것입니다. 누군가가 도움이되기를 바랍니다.