出于日志记录的目的,我想知道我的程序运行的Docker实例的名称。
例如,如果我将其作为:
启动docker run -d --name my-docker-name some/image
如何在其中运行的程序中找到实际的泊坞窗名称(在此示例中为my-docker-name)?
答案 0 :(得分:1)
TL; DR:--hostname
选项。
Container的程序无法访问其容器的名称。
https://stackoverflow.com/a/36068029/5321002
添加与docker容器名称相同名称的选项-h|--hostname=""
。然后你只需要从程序中查询主机名即可。
修改强>
按照您的建议提供带有名称的env变量。总体命令如下所示:
$name="custom-uniq-name"
$docker run -h $name --name $name -e NAME=$name image-to-run
答案 1 :(得分:0)
如果你添加
-v /var/run/docker.sock:/var/run/docker.sock
到你的
docker run
命令,您将docker socket暴露给容器,并且您将能够启动docker命令,例如
docker ps --filter
请记住,这有潜在危险,现在您的容器可以访问主机。