How to get RAM, CPU, network usage on a specific process on a container

I am looking at a number of Docker containers running on a Centos7 VM. Each container will be running a number of processes. For each process, I want to be able to see the CPU network and RAM usage to identify when the container is starting to get overloaded. Getting the CPU and RAM of the container is not going to be enough, as the CPU could have 100% of RAM allocated but in the processes there is actually RAM to spare. I have used Sysdig chisels to get the CPU usage of separate processes, but network and RAM use is not incorporated. Specifically for network statistics I want to be able to know network packets dropped any other relevant statistics. Ideally, I would be able to use a Sysdig-like tool to retrieve the stats from the host, instead of having to use resources inside the container to run a separate log generator.

  • Docker dnu restore fails
  • Proper method to run gulp build on jenkins for AWS ECS
  • Apache container freezes due to locked file on shared volume using Docker for Windows
  • Can I run DCE (Docker Container Executor) on Yarn with Kerberos?
  • devops - Should I create a dedicated 'devops' GitHub user with read permission? [closed]
  • How to check if docker is running or not
  • docker remote api set env
  • Docker compose best practices of packaged or bundled asset container?
  • How to persist Docker data in HOST
  • boot2docker changing IP address from default to (Mac)
  • Docker setting up
  • Docker container IP address
  • One Solution collect form web for “How to get RAM, CPU, network usage on a specific process on a container”

    I believe you can use docker top <container id> to view all the processes running in a container but this will not show you the memory and cpu usage etc.

    You can, as suggested in the comments view the total memory usage, cpu usage, i/o etc of a entire container using docker stats <container id>.

    Alternatively you can log into your container and just have a look yourself by using docker exec -it <container id> bash but note, you may not have bash available depending on your base so you may have to use sh.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.