我试图将docker容器的IP地址作为容器中的环境变量。这是我尝试过的:
启动容器时
docker run -dPi -e ip=`hostname -i` myDockerImage
当容器已启动时
docker exec -it myDockerImage bash -c "export ip=`hostname -i`"
这两种方法的问题在于它使用运行命令的主机的ip地址,而不是运行它的docker容器。
然后我在docker容器中创建了一个如下所示的脚本:
#!/bin/bash
export ip=`hostname -i`
echo $ip
然后用
运行它docker exec -it myDockerImage bash -c ". ipVariableScript.sh"
当我将my_cmd(在我的情况下是bash
添加到脚本的末尾时,它在一个bash会话中工作。我以后无法在我需要的文件中使用它。我需要将其设置为环境变量,而不是一个会话的变量。
所以我已经用'来源了它。'。但是当我在容器中时,它仍然不会回响。如果我在脚本中放置了一个echo $ip
,它将为我提供正确的IP地址。但只能在其设置的脚本中使用。
答案 0 :(得分:0)
Docker中的服务名称更可靠,更易于使用。但是,这里
$ docker run -it ubuntu bash -c 'IP=$(hostname -i); echo ip=$IP'
ip=172.17.0.76