Можно ли получить информацию хозяина изнутри докер, напримерМожно ли получить данные хоста из контейнера докеров?
- IP HOST станка (eth0 по IP не docker0 в)
- Доступные RAM в HOST машины
и т.д.,
Заранее спасибо
Можно ли получить информацию хозяина изнутри докер, напримерМожно ли получить данные хоста из контейнера докеров?
и т.д.,
Заранее спасибо
Это вообще не возможно - это сломает изоляцию, которую обеспечивает Докер.
В этой статье вы можете увидеть, как любой прорыв из контейнера 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
Большое спасибо Дональду .. – Shan
Я добавил обходной путь для вас. –
Спасибо, Дональд В настоящее время я использую тот же метод на 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