如何使用docker ps查看已解析环境变量的完整容器命令?
查看Docker容器解析环境变量后的完整命令
当docker ps --no-trunc显示的容器命令包含未解析的${ENV_VARIABLE}时,这是因为Docker存储的是容器启动时的原始命令模板,环境变量是在容器内部由shell执行时才完成解析的。要获取实际运行的、解析后的完整命令,可以用以下几种方法:
方法一:进入容器查看进程命令行
- 获取容器ID或名称:
docker ps - 进入容器的shell环境:
docker exec -it <容器ID/容器名称> sh - 执行进程查看命令,比如:
或者更精准定位目标进程:ps aux
这里显示的进程命令行就是已经解析完环境变量的实际执行命令。ps -ef | grep <进程关键词>
方法二:在宿主机直接查看容器进程的命令行
容器进程本质是宿主机上被namespace隔离的进程,可以通过以下步骤查看:
- 获取容器对应的宿主机PID:
docker inspect -f '{{.State.Pid}}' <容器ID/容器名称> - 读取该进程的命令行信息(
/proc目录存储了进程的运行细节):
命令中的cat /proc/<PID>/cmdline | tr '\0' ' 'tr '\0' ' '是将/proc/<PID>/cmdline中用null字符分隔的内容转换成空格,方便阅读。
方法三:用docker top快速查看
直接用docker top命令查看容器内的进程列表,也能看到解析后的命令:
docker top <容器ID/容器名称>
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

