当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 查看Docker停止容器占用的内存的实现方法小结

查看Docker停止容器占用的内存的实现方法小结

2024年11月25日 云虚拟主机 我要评论
方法一:使用docker system df命令docker system df命令可以显示 docker 使用的磁盘空间,包括镜像、容器和数据卷的占用情况。运行命令:docker system df

方法一:使用 docker system df 命令

docker system df 命令可以显示 docker 使用的磁盘空间,包括镜像、容器和数据卷的占用情况。

运行命令

docker system df

输出示例

type                total     active    size      reclaimable
images              10        5         5.00gb    2.50gb (50%)
containers          20        10        1.00gb    500mb (50%)
local volumes       5         3         500mb     200mb (40%)
build cache         0         0         0b        0b

方法二:使用 docker inspect 命令

docker inspect 命令可以查看容器的详细信息,包括其状态和资源使用情况。

获取所有停止的容器的 id

docker ps -a -q --filter status=exited

查看某个停止的容器的详细信息

docker inspect <container_id>

解析输出

在输出的 json 中,查找 sizerw 和 sizerootfs 字段,这些字段分别表示容器的可写层大小和根文件系统的总大小。

方法三:使用 docker system prune 命令

虽然 docker system prune 命令主要用于清理未使用的资源,但它也可以帮助你了解哪些资源可以被回收。

运行命令

docker system prune

输出示例

warning! this will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all build cache
are you sure you want to continue? [y/n] y
total reclaimed space: 2.50gb

方法四:使用 du 命令

你也可以直接在宿主机上使用 du 命令来查看 docker 目录的磁盘使用情况。

查找 docker 存储目录

默认情况下,docker 存储目录位于 /var/lib/docker

运行 du 命令

sudo du -h --max-depth=1 /var/lib/docker

输出示例

4.0k    /var/lib/docker/containers
1.0g    /var/lib/docker/image
500m    /var/lib/docker/volumes
5.0g    /var/lib/docker

综合示例

假设你有一个停止的容器 id 为 abc123,你可以按照以下步骤查看其占用的内存:

获取容器的详细信息

docker inspect abc123

解析输出

在输出的 json 中,查找 sizerw 和 sizerootfs 字段:

{
    "id": "abc123",
    "created": "2023-10-01t12:34:56.789z",
    "path": "/bin/bash",
    "args": [],
    "state": {
        "status": "exited",
        "running": false,
        "paused": false,
        "restarting": false,
        "oomkilled": false,
        "dead": false,
        "pid": 0,
        "exitcode": 0,
        "error": "",
        "startedat": "2023-10-01t12:34:56.789z",
        "finishedat": "2023-10-01t12:35:00.789z"
    },
    "image": "sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "resolvconfpath": "/var/lib/docker/containers/abc123/resolv.conf",
    "hostnamepath": "/var/lib/docker/containers/abc123/hostname",
    "hostspath": "/var/lib/docker/containers/abc123/hosts",
    "logpath": "/var/lib/docker/containers/abc123/abc123-json.log",
    "name": "/my_container",
    "restartcount": 0,
    "driver": "overlay2",
    "platform": "linux",
    "mountlabel": "",
    "processlabel": "",
    "apparmorprofile": "",
    "execids": null,
    "hostconfig": {
        "binds": null,
        "containeridfile": "",
        "logconfig": {
            "type": "json-file",
            "config": {}
        },
        "networkmode": "default",
        "portbindings": {},
        "restartpolicy": {
            "name": "no",
            "maximumretrycount": 0
        },
        "autoremove": false,
        "volumedriver": "",
        "volumesfrom": null,
        "capadd": null,
        "capdrop": null,
        "cgroupnsmode": "host",
        "dns": [],
        "dnsoptions": [],
        "dnssearch": [],
        "extrahosts": null,
        "groupadd": null,
        "ipcmode": "private",
        "cgroup": "",
        "links": null,
        "oomscoreadj": 0,
        "pidmode": "",
        "privileged": false,
        "publishallports": false,
        "readonlyrootfs": false,
        "securityopt": null,
        "utsmode": "",
        "usernsmode": "",
        "shmsize": 67108864,
        "runtime": "runc",
        "consolesize": [
            0,
            0
        ],
        "isolation": "",
        "cpushares": 0,
        "memory": 0,
        "nanocpus": 0,
        "cgroupparent": "",
        "blkioweight": 0,
        "blkioweightdevice": [],
        "blkiodevicereadbps": null,
        "blkiodevicewritebps": null,
        "blkiodevicereadiops": null,
        "blkiodevicewriteiops": null,
        "cpuperiod": 0,
        "cpuquota": 0,
        "cpurealtimeperiod": 0,
        "cpurealtimeruntime": 0,
        "cpusetcpus": "",
        "cpusetmems": "",
        "devices": [],
        "devicecgrouprules": null,
        "devicerequests": null,
        "kernelmemory": 0,
        "kernelmemorytcp": 0,
        "memoryreservation": 0,
        "memoryswap": 0,
        "memoryswappiness": null,
        "oomkilldisable": false,
        "pidslimit": null,
        "ulimits": null,
        "cpucount": 0,
        "cpuusage": 0,
        "iomaximumiops": 0,
        "iomaximumbandwidth": 0,
        "maskedpaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "..."
        ],
        "readonlypaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger",
            "..."
        ]
    },
    "graphdriver": {
        "data": {
            "lowerdir": "/var/lib/docker/overlay2/fc1234567890abcdef1234567890abcdef/diff",
            "mergeddir": "/var/lib/docker/overlay2/abc123/merged",
            "upperdir": "/var/lib/docker/overlay2/abc123/diff",
            "workdir": "/var/lib/docker/overlay2/abc123/work"
        },
        "name": "overlay2"
    },
    "mounts": [],
    "config": {
        "hostname": "abc123",
        "domainname": "",
        "user": "",
        "attachstdin": false,
        "attachstdout": false,
        "attachstderr": false,
        "tty": false,
        "openstdin": false,
        "stdinonce": false,
        "env": [
            "path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "cmd": [
            "/bin/bash"
        ],
        "image": "ubuntu:latest",
        "volumes": null,
        "workingdir": "/",
        "entrypoint": null,
        "onbuild": null,
        "labels": {}
    },
    "networksettings": {
        "bridge": "",
        "sandboxid": "1234567890abcdef1234567890abcdef",
        "hairpinmode": false,
        "linklocalipv6address": "",
        "linklocalipv6prefixlen": 0,
        "ports": {},
        "sandboxkey": "/var/run/docker/netns/1234567890ab",
        "secondaryipaddresses": null,
        "secondaryipv6addresses": null,
        "endpointid": "",
        "gateway": "",
        "globalipv6address": "",
        "globalipv6prefixlen": 0,
        "ipaddress": "",
        "ipprefixlen": 0,
        "ipv6gateway": "",
        "macaddress": "",
        "networks": {
            "bridge": {
                "ipamconfig": null,
                "links": null,
                "aliases": null,
                "networkid": "1234567890abcdef1234567890abcdef",
                "endpointid": "",
                "gateway": "",
                "ipaddress": "",
                "ipprefixlen": 0,
                "ipv6gateway": "",
                "globalipv6address": "",
                "globalipv6prefixlen": 0,
                "macaddress": "",
                "driveropts": null
            }
        }
    },
    "sizerw": 10485760,  # 可写层大小(10 mb)
    "sizerootfs": 209715200  # 根文件系统总大小(200 mb)
}

总结

通过上述方法,你可以详细了解停止的 docker 容器占用的内存和其他资源。

到此这篇关于查看docker停止容器占用的内存的实现方法小结的文章就介绍到这了,更多相关查看docker停止容器占用内存内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com