读取Docker容器内主机的IP地址
有没有办法知道容器运行的Docker容器内的CentOS主机的IP地址? 就像说,如果我有一个Linux机器10.10.10.10 IPdocker容器1和容器2运行,我想从我的Java代码查询IP。 Java代码在Docker容器中。 我实际上是将这些服务作为docker群运行的。
Docker是关于从主机隔离的容器。
所以,从理论上讲,容器不应该知道这个IP地址,除非主机将它“提供给”容器
一些想法
在运行时在一个环境variables中
或
docker run -e "host_IP=10.10.10.10"...
或者在一个包含my_env的文件中
host_IP 10.10.10.10
并使用它
docker run --env-file my_env
看文档
https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables–e—env—env-file
在构build时在一个环境variables中
在你的Dockerfile中有一行
ENV host_IP 10.10.10.10
文件
https://docs.docker.com/engine/reference/builder/#env
你可以在主机和容器之间共享/ etc / hosts
docker run -v /etc/hosts:/etc/hosts ...
您可以使用以下netstat命令从容器内查找主机ip:
netstat -nr | grep '^0.0.0.0' | awk '{print $2}'