instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from their defaults. Setting these
  values incorrectly can cause your host system to become unstable or unusable.Configure the host machine's kernelVerify that CONFIG_RT_GROUP_SCHED is enabled in the Linux kernel by running
  zcat /proc/config.gz | grep CONFIG_RT_GROUP_SCHED or by checking for the
  existence of the file /sys/fs/cgroup/cpu.rt_runtime_us. For guidance on
  configuring the kernel real-time scheduler, consult the documentation for your
  operating system.Configure the Docker daemonTo run containers using the real-time scheduler, run the Docker daemon with
  the --cpu-rt-runtime flag set to the maximum number of microseconds reserved
  for real-time tasks per runtime period. For instance, with the default period of
  1000000 microseconds (1 second), setting --cpu-rt-runtime=950000 ensures that
  containers using the real-time scheduler can run for 950000 microseconds for every
  1000000-microsecond period, leaving at least 50000 microseconds available for
  non-real-time tasks. To make this configuration permanent on systems which use
  systemd, create a systemd unit file for the docker service. For example,
  see the instruction on how to configure the daemon to use a proxy with a
  systemd unit file.Configure individual containersYou can pass several flags to control a container's CPU priority when you
  start the container using docker run. Consult your operating system's
  documentation or the ulimit command for information on appropriate values.OptionDescription--cap-add=sys_niceGrants the container the CAP_SYS_NICE capability, which allows the container to raise process nice values, set real-time scheduling policies, set CPU affinity, and other operations.--cpu-rt-runtime=<value>The maximum number of microseconds the container can run at real-time priority within the Docker daemon's real-time scheduler period. You also need the --cap-add=sys_nice flag.--ulimit rtprio=<value>The maximum real-time priority allowed for the container. You also need the --cap-add=sys_nice flag.The following example command sets each of these three flags on a debian:jessie
  container.
  
  $ docker run -it \
   --cpu-rt-runtime=950000 \
   --ulimit rtprio=99 \
   --cap-add=sys_nice \
   debian:jessie
  If the kernel or Docker daemon isn't configured correctly, an error occurs.GPUAccess an NVIDIA GPUPrerequisitesVisit the official NVIDIA drivers page
  to download and install the proper drivers. Reboot your system once you have
  done so.Verify that your GPU is running and accessible.Install nvidia-container-toolkitFollow the official NVIDIA Container Toolkit installation instructions.Expose GPUs for useInclude the --gpus flag when you start a container to access GPU resources.
  Specify how many GPUs to use. For example:
  
  $ docker run -it --rm --gpus all ubuntu nvidia-smi
  Exposes all available GPUs and returns a result akin to the following:
  
  +-------------------------------------------------------------------------------+
  | NVIDIA-SMI 384.130 	Driver Version: 384.130 	|
  |-------------------------------+----------------------+------------------------+
  | GPU Name 	 Persistence-M| Bus-Id 	Disp.A | Volatile Uncorr. ECC |
  | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
  |===============================+======================+========================|
  | 0 GRID K520 	Off | 00000000:00:03.0 Off | N/A |
  | N/A 36C	P0 39W / 125W | 	0MiB / 4036MiB | 0% 	Default |
  +-------------------------------+----------------------+------------------------+
  +-------------------------------------------------------------------------------+
  | Processes: GPU Memory |
  | GPU 	PID Type Process name 	Usage 	|
  |===============================================================================|
  | No running processes found |
  +-------------------------------------------------------------------------------+Use the device option to specify GPUs. For example:
  
  $ docker run -it --rm --gpus device=GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a ubuntu nvidia-smi
  Exposes that specific GPU.
  
  $ docker run -it --rm --gpus '"device=0,2"' ubuntu nvidia-smi
  Exposes the first and third GPUs.
  NoteNVIDIA GPUs can only be accessed by systems running a single engine.Set NVIDIA capabilitiesYou can set capabilities manually. For example, on Ubuntu you can run the
  following:
  
  $ docker run --gpus 'all,capabilities=utility' --rm ubuntu nvidia-smi
  This enables the utility driver capability which adds the nvidia-smi tool to
  the container.Capabilities as well as other configurations can be set in images via
  environment variables. More information on valid variables can be found in the
  nvidia-container-toolkit
  documentation. These variables can be set in a Dockerfile.You can also use CUDA images, which set these variables automatically. See the
  official CUDA images
  NGC catalog page.
  Request changesTable of contentsMemoryUnderstand the risks of running out of memoryLimit a container's access to memory--memory-swap details--memory-swappiness details--kernel-memory detailsCPUConfigure the default CFS schedulerConfigure the real-time schedulerGPUAccess an NVIDIA GPU
  
  Product offerings
  Pricing
  About us
  Contribute
  Read llms.txt
  Cookies Settings
  
  Status
  Legal```