我如何通过检查正在运行的系统来确定需要为Docker主机提供哪些资源?

问题描述 投票:-4回答:1

我的目标是定义具有RAM所需的适当内存大小的容器定义("ContainerDefinitions"),以启动docker容器。例如,jenkins容器的以下代码片段在500 MB RAM中启动,并且工作正常,不知道为什么

"EcsTaskDefinition": {
            "Type": "AWS::ECS::TaskDefinition",
            "Properties": {
                "ContainerDefinitions": [
                    {
                        "Name": "jenkins",
                        "Image": "somedockeraccount/jenkins:ecs",
                        "Memory": 500,
                        "PortMappings": [ { "ContainerPort": 8080, "HostPort": 8080 } ],

因为以下命令将该詹金斯映像的磁盘空间分配为1.64GB,可能不是docker映像的实际大小:

$ docker image ls
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
somedockeraccount/jenkins   ecs                 d9d23cc59412        38 hours ago        1.64GB
$ docker image inspect somedockeraccount/jenkins:ecs | grep -i size 
        "Size": 1640601180,
        "VirtualSize": 1640601180,

Docker镜像正在使用overlay2文件系统(/var/lib/docker/overlay2/

[docker ps -q | xargs docker inspect还显示overlay2文件系统

下面在本地测试的元数据也没有提供RAM大小要求的线索:

$ docker ps -q | xargs docker inspect | grep -i memory
            "Memory": 0,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,

如何在Docker主机中查找启动Docker容器所需的资源(RAM内存等。)?鉴于此Dockerfile

因为,这有助于决定在我的情况下选择特定的EC2实例类型(t2.micro或其他)。不确定[RAM]"Memory":500MB大小如何启动1.65 GB(磁盘空间大小)的Docker映像的Docker容器?因为我的理解是,docker容器=(docker_image层+ RW_layer)

docker memory-management amazon-ecs
1个回答
1
投票

对此问题没有规范的答案;它无法回答,因为运行时内存需求与存储需求完全脱钩,否则无法从Docker元数据派生。

© www.soinside.com 2019 - 2024. All rights reserved.