Back to prev

Docker In Use

Mar 19, 2021
Linkang Chan
@Jesse Chan

记录 docker 的一些常用命令, 主要是在日常查询和定位问题的时候比较有帮助。以期望能在必要时提供一些帮助。这些内容大多是实践之后的记录,不是一篇 docker 使用手册的笔记。

查看 container 的详情

$ sudo docker inspect  <container_name/container_id>

查看 container 的内存使用情况

$ sudo docker stats
CONTAINER ID    NAME    CPU %   MEM USAGE / LIMIT     MEM %    NET I/O           BLOCK I/O       PIDS
306d9e2f8631   cuda     0.00%   988KiB / 125.5GiB     0.00%    0B / 0B           6.61MB / 174MB   2
4e7decd2bcfc   goodbye  0.00%   1.93MiB / 125.5GiB    0.00%    6.97MB / 1.97kB   1.17MB / 172kB   4

查看 docker 自身的信息

$ sudo docker info
Containers: 26
 Running: 26
 Paused: 0
 Stopped: 0
Images: 19
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: nvidia runc
Default Runtime: runc
……

ubuntu 上查看 docker 日志

$ sudo journalctl -fu docker.service

删除 image

$ sudo docker rmi <image-id>

删除 container

$ sudo docker rm <container-id/container-name>

查看指定容器的日志

每隔两秒查看一下指定容器的最后 10 行日志

$ sudo docker logs -f --tail=10 --until=2s <container_name/container_id> 

[docker logs]: docker 官方文档

技巧相关

清空 log

当我们的 log 文件变得很大时,我们想将其清空时,可以通过如下命令进行操作:

$ : > $(docker inspect --format=`{{.LogPath}}` <container_name_or_id>)

注意这边的format的反引号要改成单引号