2015-04-26 3 views

ответ

2

Это вообще не возможно - это сломает изоляцию, которую обеспечивает Докер.

В этой статье вы можете увидеть, как любой прорыв из контейнера Docker на самом деле является серьезной проблемой безопасности.

https://blog.docker.com/2014/06/docker-container-breakout-proof-of-concept-exploit/

Однако, существуют различные обходные пути:

http://blog.michaelhamrah.com/2014/06/accessing-the-docker-host-server-within-a-container/

Предлагает следующий подход:

«Несмотря на то, что нет никакого способа, чтобы вникать IP-адрес хоста (AFAIK) вы можете передать это через переменную окружения: «

[email protected]:~$ docker run -i -t -e DOCKER_HOST=192.168.59.103 ubuntu /bin/bash 
[email protected]:/# env 
HOSTNAME=07561b0607f4 
DOCKER_HOST=192.168.59.103 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
PWD=/ 

На EC2, в частности, вы можете получить доступ к метаданные экземпляра:

См

Fetching AWS instance metadata from within Docker container?

В частности:

$ curl http://169.254.169.254/latest/meta-data/hostname 
ec2-203-0-113-25.compute-1.amazonaws.com 

Другие варианты метаданных перечислены здесь:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

+0

Большое спасибо Дональду .. – Shan

+0

Я добавил обходной путь для вас. –

+0

Спасибо, Дональд В настоящее время я использую тот же метод на EC2. 'docker run -it -p 9200: 9200 -p 9300: 9300 -e HOST_IP = $ (имя хоста --ip-адрес) shan/elk: latest' Мой вариант использования: я запускаю elasticsearch внутри докера, и мне нужно передать IP-адрес хост-машины в параметр 'network.publish_host:' в elasticsearch Без передачи HOST_IP автоматическое обнаружение не работает Большое спасибо Дональду. – Shan

Смежные вопросы