在做集群批量部署的过程中,记录日志及链路追踪时,我们需要在大量的容器中筛选出出现问题或需要记录的容积,以更快的方式确认错误的位置,因此在容器荣能获取到容器的 id 我们即能方便的进行问题定位
-
宿主机中获取容器 id 如下图所示
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9440dd89c405 mongo "docker-entrypoint.s…" 3 days ago Up 3 days 0.0.0.0:27017->27017/tcp mongo
- 如果想在容器中获取
docker exec -it mongo bash
cat /proc/self/cgroup | head -1
12:cpuset:/docker/9440dd89c4052167611e467efd47e1feccabaad448594cbc90eb7fb3f12f4c3f
可以看出后面的 944 开头的就是容器自身的id。
head -1 /proc/self/cgroup|cut -d/ -f3
9440dd89c4052167611e467efd47e1feccabaad448594cbc90eb7fb3f
只取12位id
head -1 /proc/self/cgroup|cut -d/ -f3|cut -c1-12
9440dd89c405
宿主机中获取容器 id 如下图所示docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9440dd89c405 mongo .
[root@wls12c ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
037b847bf093 centos /bin/bash 3 minutes ago Exited (0) 2 minute naughty_davinci
进入docker容器后如果退出容器,容器就会变成Exited的状态,那么如何退出容器让容器不关闭呢?
如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器,这一点很重要,请牢记!
以下示例为退出容器但不关闭容器
[root@localhost ~]# docker attach c600c4519fc8
[root@c600c4519fc8 /]# exit
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS P
2.1 找出Docker容器日志
在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件(业务日志)很大,查看各个日志文件大小的脚本docker_log_size.sh,内容如下:
#!/bin/sh
echo ======== docker containers logs file size ========
在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。
docker stats 命令用来显示容器使用的系统资源。不带任何选项执行 docker stats 命令:
$ docker stats
默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用
Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。
以下操作通过myfirstapp镜像模拟,如何制作myfirstapp镜像请点击此处。
1、外部访问容器
容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射。
a、用-P(大写)标记时,docker会随机选择一个端口映射到容器内部开放的网络端口上。
$ docker run -d -P myfirstapp python app.py
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
介绍两种办法查询容器id
1.使用docker ps -aqf “name=containername”
2.docker inspect --format="{{.Id}}" container_name
方法1:
[root@node1 filebeat]# docker ps -aqf "name=test2"
0f0b77cd0c53
[root@node1 filebeat...
http://10.161.0.1:5051/containers
cadvisor接口/api/v1.2/docker
http://10.161.0.1:18081/api/v1.2/docker
marathon接口取实例运行slav主机,通过slave的container接口取container-id,拼接meso-可以得到容器对应的mesos-con
要获取Docker容器启动的参数,可以通过以下几种方式:
1. 使用`docker inspect`命令:通过该命令可以获取到Docker容器的详细信息,包括容器的启动参数。可以通过`docker inspect <容器ID>`或`docker inspect <容器名称>`来获取指定容器的信息。在返回的JSON格式的输出中,可以找到`Args`字段,其中包含了容器启动时使用的命令和参数。
2. 使用`docker container ls`命令:通过该命令可以列出当前正在运行的容器的信息,包括容器的启动参数。可以通过`docker container ls`或`docker ps`命令来列出容器的基本信息。在输出的表格中,可以找到`COMMAND`列,其中包含了容器启动时使用的命令和参数。
3. 进入容器内部查看:可以通过`docker exec`命令进入容器内部,然后查看容器运行时的参数。可以使用`docker exec -it <容器ID> /bin/bash`命令来进入容器的shell环境。在容器内部,可以使用`ps aux`命令查看当前运行的进程和对应的参数。
总之,可以通过`docker inspect`、`docker container ls`命令或进入容器内部查看进程来获取Docker容器启动的参数。
### 回答2:
要获取Docker容器启动的参数,可以使用docker inspect命令。该命令用于检查Docker对象的详细信息,包括容器、镜像、网络等。下面是获取容器启动参数的步骤:
1. 确保Docker已经安装并且正在运行。
2. 打开终端或命令提示符,然后执行以下命令:
docker ps
这将列出所有正在运行的容器。请记住您要获取参数的容器的名称或ID。
3. 执行以下命令以获取该容器的详细信息:
docker inspect <容器名称或ID>
替换<容器名称或ID>为您要查看的容器的实际名称或ID。
4. 在输出结果中,您可以找到启动参数的信息。启动参数通常位于"Config"部分,它包含容器的配置信息。在此部分中,您可以找到以下字段:
- "Cmd"字段显示了容器启动时所使用的命令。
- "Args"字段显示了传递给启动命令的参数。
通过查看这些字段,您可以获取到容器启动的参数。
使用上述步骤,您可以轻松地获取Docker容器启动的参数信息。请确保您具备足够的权限来执行这些命令。
### 回答3:
要获取Docker容器的启动参数,可以通过使用Docker命令行工具或Docker API来实现。
使用Docker命令行工具:
1. 执行命令 "docker ps" 列出当前正在运行的容器。
2. 根据容器的名称或ID选择要查看的容器。
3. 执行命令 "docker inspect <容器名称或ID>" 查看该容器的详细信息。
4. 在返回的JSON输出中,可以找到"Args"字段,其中包含了容器启动时的参数。
使用Docker API:
1. 使用适合自己编程语言的Docker客户端库连接到Docker守护进程。
2. 使用Docker API的"GET /containers/{id}/json"接口,其中{id}为容器的ID。
3. 根据返回的JSON响应,可以找到"Args"字段,其中包含了容器启动时的参数。
无论使用哪种方式,获取到的启动参数是一个数组,包含了容器启动时传递的所有参数。这些参数可以是容器指定的命令、环境变量值,或者其他自定义参数。
总之,获取Docker容器启动的参数可以通过使用Docker命令行工具或Docker API来实现,通过查看容器的详细信息并获取"Args"字段的值来获得。