instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from the default of 1024, use the -c or --cpu-shares
  flag to set the weighting to 2 or higher. If 0 is set, the system will ignore the
  value and use the default of 1024.The proportion will only apply when CPU-intensive processes are running.
  When tasks in one container are idle, other containers can use the
  left-over CPU time. The actual amount of CPU time will vary depending on
  the number of containers running on the system.For example, consider three containers, one has a cpu-share of 1024 and
  two others have a cpu-share setting of 512. When processes in all three
  containers attempt to use 100% of CPU, the first container would receive
  50% of the total CPU time. If you add a fourth container with a cpu-share
  of 1024, the first container only gets 33% of the CPU. The remaining containers
  receive 16.5%, 16.5% and 33% of the CPU.On a multi-core system, the shares of CPU time are distributed over all CPU
  cores. Even if a container is limited to less than 100% of CPU time, it can
  use 100% of each individual CPU core.For example, consider a system with more than three cores. If you start one
  container {C0} with -c=512 running one process, and another container
  {C1} with -c=1024 running two processes, this can result in the following
  division of CPU shares:PID container	CPU	CPU share
  100 {C0}		0	100% of CPU0
  101 {C1}		1	100% of CPU1
  102 {C1}		2	100% of CPU2
  CPU period constraintThe default CPU CFS (Completely Fair Scheduler) period is 100ms. We can use
  --cpu-period to set the period of CPUs to limit the container's CPU usage.
  And usually --cpu-period should work with --cpu-quota.Examples:
  
  $ docker run -it --cpu-period=50000 --cpu-quota=25000 ubuntu:24.04 /bin/bash
  If there is 1 CPU, this means the container can get 50% CPU worth of run-time every 50ms.In addition to use --cpu-period and --cpu-quota for setting CPU period constraints,
  it is possible to specify --cpus with a float number to achieve the same purpose.
  For example, if there is 1 CPU, then --cpus=0.5 will achieve the same result as
  setting --cpu-period=50000 and --cpu-quota=25000 (50% CPU).The default value for --cpus is 0.000, which means there is no limit.For more information, see the CFS documentation on bandwidth limiting.Cpuset constraintWe can set cpus in which to allow execution for containers.Examples:
  
  $ docker run -it --cpuset-cpus="1,3" ubuntu:24.04 /bin/bash
  This means processes in container can be executed on cpu 1 and cpu 3.
  
  $ docker run -it --cpuset-cpus="0-2" ubuntu:24.04 /bin/bash
  This means processes in container can be executed on cpu 0, cpu 1 and cpu 2.We can set mems in which to allow execution for containers. Only effective
  on NUMA systems.Examples:
  
  $ docker run -it --cpuset-mems="1,3" ubuntu:24.04 /bin/bash
  This example restricts the processes in the container to only use memory
  ```