有没有办法知道容器运行的docker容器内的CentOS主机的IP地址?就像说如果我有一台运行docker container1和container2的linux机器10.10.10.10 IP,我想从我的java代码中查询IP。 Java代码位于docker容器内。我实际上是作为docker swarm运行这些服务。
答案 0 :(得分:1)
Docker是关于将容器与主机隔离。
所以,理论上,容器不应该知道这个IP地址,除非主机"给出"它到容器
一些想法
在运行时的环境变量中
或者
docker run -e "host_IP=10.10.10.10"...
或包含
的文件my_env host_IP 10.10.10.10
并在
docker run --env-file my_env
参见文档
在构建时的环境变量中
在你的Dockerfile中有一行
ENV host_IP 10.10.10.10
doc
https://docs.docker.com/engine/reference/builder/#env
您可以使用
在主机和容器之间共享/ etc / hosts docker run -v /etc/hosts:/etc/hosts ...
答案 1 :(得分:0)
您可以使用以下netstat命令从容器内找到主机IP:
netstat -nr | grep '^0.0.0.0' | awk '{print $2}'