为什么无法登录jaeger-agent Docker容器?如何进入该容器内部?
无法进入jaeger-agent容器的原因及解决方案
核心原因
你使用的1.17版本jaeger-agent镜像采用distroless极简基础镜像构建,镜像内部没有预装bash等常规shell程序,甚至大部分场景下连轻量的sh都没有内置,所以执行docker exec -it jaeger-agent bash会直接报错找不到命令。
可行解决方案
- 优先尝试使用sh命令进入:
如果镜像内置了轻量shell,可以执行以下命令测试:docker exec -it jaeger-agent sh
如果执行后仍然报错,说明镜像内无任何可用shell,采用下面两种方案。 - 导出容器文件系统查看内部内容:
仅需要查看容器内部文件的场景下,直接将容器的完整文件系统导出到本地即可:docker export jaeger-agent -o jaeger-agent-filesystem.tar
导出后解压tar包即可在本地遍历所有内部文件。 - 重新构建带shell的镜像:
需要长期支持进入容器操作的场景,可以基于官方镜像重新构建带基础工具的版本,Dockerfile参考如下:
构建新镜像后用该镜像启动容器,即可正常执行FROM jaegertracing/jaeger-agent:1.17 # 切换为root权限安装依赖 USER root RUN apk add --no-cache bash # 切回原镜像的默认运行用户,避免权限问题 USER 1001docker exec命令进入容器。
内容的提问来源于stack exchange,提问作者gai-jin
相关产品推荐
相关产品推荐

