是否有可能在docker集装箱内获得主机细节?

例如,是否可以从Docker中获取主机的信息?

  1. 主机的IP(eth0的IP不是docker0的)
  2. HOST机器中可用的RAM

等等。,

提前致谢

这通常是不可能的 – 它会打破Docker提供的隔离。

在本文中,您可以看到,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/

build议采取以下办法:

“虽然没有办法来反省主机的IP地址(AFAIK),但你可以通过一个环境variables来传递:”

docker@boot2docker:~$ docker run -i -t -e DOCKER_HOST=192.168.59.103 ubuntu /bin/bash root@07561b0607f4:/# env HOSTNAME=07561b0607f4 DOCKER_HOST=192.168.59.103 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ 

在EC2上,具体来说,您可以访问实例的元数据:

看到

从Docker容器中获取AWS实例元数据?

尤其是:

 $ 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