Linux
中我们可以使用 whoami
或 id
命令进行查询打印当前用户的信息。今天在容器的技术群里,碰到一个群友询问:如何查询自己当前在那个容器中?
我们都知道 Docker
在构建镜像时每一层镜像都有一个唯一镜像ID,同样每一个容器实例也都有其自己唯一的容器ID(叫:CONTAINER ID
),我们可以有多种方式来确定当前自己的容器,譬如:通过容器ID、容器IP 这些唯一信息进行对比知道自己到底在那一个启动的容器中。想要获取这些信息我们可以通过 docker inspect <container>
的方式打印容器的详细信息。
如果你遵循的是:一个容器仅运行一个应用服务 的原则,也可以通过 ps
查看当前的服务进程知道答案。
这里说一个最简单的方式:通过对比 hostname
知道自己当前所在的容器。
/etc/hosts
会在每次容器启动的试试生成,只要不是通过挂载文件的方式进行了覆盖,那么一定会有一条记录 <容器IP> <容器ID>
在 hosts
文件中。因此我们可以通过cat /etc/hosts
或 hostname
命令得到当前容器的 HostName 信息,然后和 docker ps
打印的容器列表信息进行对比,操作如下: