我如何使用容器的内部IP地址作为Docker中的环境variables

正如标题所说,我正在试图将我的docker容器的IP地址作为容器内的环境variables。 这是我试过的:

启动容器时

docker run -dPi -e ip=`hostname -i` myDockerImage 

当容器已经启动

 docker exec -it myDockerImage bash -c "export ip=`hostname -i`" 

这两种方法的问题是它使用运行命令的主机的ip地址,而不是运行的docker容器。

于是我在docker容器里面创build了一个如下所示的脚本:

 #!/bin/bash export ip=`hostname -i` echo $ip 

然后运行这个

 docker exec -it myDockerImage bash -c ". ipVariableScript.sh" 

当我添加my_cmd在我的情况是bash的脚本结束时,它在一个bash的会话。 我以后不能在需要的文件中使用它。我需要将它设置为环境variables,而不是一个会话的variables。

所以我已经用'。'来源了。 但是当我在容器中时它仍然不会回应。 如果我在脚本中放入一个echo $ip ,它会给我正确的IP地址。 但是只能从它被设置的脚本中使用。

Docker中的服务名称更可靠,更易于使用。 但是,在这里

如何将客户端分配给客户端的环境var

 $ docker run -it ubuntu bash -c 'IP=$(hostname -i); echo ip=$IP' ip=172.17.0.76