从 Docker 容器内部获取 Docker 容器名称的 Python 方法

4

我需要在Python中从正在运行的容器内获取容器名称

使用以下代码,我可以轻松地从Python容器内部获取容器ID:

bashCommand = """head -1 /proc/self/cgroup|cut -d/ -f3"""
output = subprocess.check_output(['bash','-c', bashCommand])
print output

现在我需要容器名称


如果您拥有这些信息,您会如何处理?容器中的进程与外部世界的交互能力相当有限。 - David Maze
1
我需要将容器名称保存到mysqldb以便在运行脚本时使用该信息。 - Human Khoo
1个回答

2
只需在运行时设置名称,例如:
docker run --name MYCOOLCONTAINER alpine:latest

然后:

bashCommandName = `echo $NAME`

output = subprocess.check_output(['bash','-c', bashCommandName]) 

print output

这让我找到了正确的方向(所以谢谢你!),但对于仍在苦苦挣扎的人来说,对我有效的语法是--name container_name,而不是NAME="CONTAINERNAME"。 - Danny
容器名称是指在 Docker 中通过 --name 参数赋予的名称,而不是环境变量。 - Cerin
我能在 Windows 容器上做这个吗?当我在 PowerShell 上尝试 'hostname' 时,我得到了容器 ID。但是对于 'name' 或 $name,我会收到错误提示。 - jai.maruthi
请尝试 $NAME(区分大小写) - D. Vinson
1
这对我不起作用。在Ubuntu 20.04上的Docker 20.10.6: 使用交互式shell启动容器:docker run -it --rm --name MYCOOLCONTAINER alpine:latest sh。然后,我运行set以查看所有环境变量。但是没有一个包含MYCOOLCONTAINER。 - JanFrederik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接