{"id":1867,"date":"2023-07-22T13:30:06","date_gmt":"2023-07-22T04:30:06","guid":{"rendered":"https:\/\/oboki.net\/workspace\/?p=1867"},"modified":"2023-07-24T10:24:01","modified_gmt":"2023-07-24T01:24:01","slug":"nvidia-container-runtime-on-rocky-linux","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/system\/linux\/nvidia-container-runtime-on-rocky-linux\/","title":{"rendered":"NVIDIA Container Runtime on Rocky Linux"},"content":{"rendered":"<p>\uc791\uc5c5\uc6a9 \ub370\uc2a4\ud06c\ud0d1\uc5d0 gpu \ub97c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uba74\uc11c \ub0a8\ub294 gpu \uce74\ub4dc\uac00 \uc0dd\uacbc\ub294\ub370 \uc774\uac78 \uc11c\ubc84\uc5d0 \ubd99\uc5ec \uc368\ubcf4\ub824\uace0 \ud55c\ub2e4. <code>1050Ti<\/code> \uc778\ub370, \ucd94\uac00 \ubcf4\uc870 \uc804\uc6d0\ub3c4 \ud544\uc694\uc5c6\ub294 SFF \uce74\ub4dc\uc5ec\uc11c \uc11c\ubc84\uc6a9\uc73c\ub85c \ucda9\ubd84(?)\ud558\uc9c0 \uc54a\uc744\uae4c \uc2f6\ub2e4.<\/p>\n<p>\uace0\uc0ac\uc591\ub3c4 \uc544\ub2c8\uace0 Pascal \uc544\ud0a4\ud14d\ucc98\ub85c \uc5f0\uc2dd\uc774 \uc624\ub798\ub41c \uac83\uc774\uae34 \ud558\uc9c0\ub9cc \ud68c\uc0ac \uc5c5\ubb34 \ud658\uacbd\uc5d0\uc11c\ub294 \uc778\ud130\ub137\uc744 \ud65c\uc6a9\ud55c \uc774\ub7f0\uc800\ub7f0 \ud14c\uc2a4\ud2b8\uac00 \uc27d\uc9c0 \uc54a\ub2e4\ubcf4\ub2c8,, \uc6d0\uaca9\uc73c\ub85c \uac00\ubccd\uac8c \ud14c\uc2a4\ud2b8 \ud574\ubcfc \ud658\uacbd\uc73c\ub85c \uc4f8\ub9cc\ud560 \uac83 \uac19\ub2e4. \ub3c4\ucee4\ub97c \ud65c\uc6a9\ud558\ub294\uac8c \ub354 \ub098\uc744 \uac83 \uac19\uc544 \ud638\uc2a4\ud2b8\uc5d0 \ub124\uc774\ud2f0\ube0c cuda toolkit \uc744 \uc9c0\uc800\ubd84\ud558\uac8c \uc124\uce58\ud558\uc9c0 \uc54a\uace0 nvidia container runtime (<code>nvidia-docker<\/code>) \uae4c\uc9c0\ub9cc \uad6c\uc131\ud574\ubcf4\ub824\uace0 \ud55c\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/developer-blogs.nvidia.com\/wp-content\/uploads\/2018\/05\/dgx-docker-625x592.png\" alt=\"\" \/><\/p>\n<p>GPU \uc11c\ubc84 \uc14b\uc5c5\uc740 \uc9c4\uc9dc \uc624\ub79c\ub9cc\uc5d0 \ud574\ubcf4\ub294 \uac83 \uac19\uc740\ub370 \ubb38\uc11c\ub3c4 \uc798 \ub098\uc624\uace0, \uce74\ub4dc\ubcc4\ub85c \ub531 \ub9de\ucdb0\uc9c4 \ud658\uacbd\uc774 \uc544\ub2c8\ub354\ub77c\ub3c4 \ud328\ud0a4\uc9c0 \ub9e4\ub2c8\uc800\ub85c \ub300\ubd80\ubd84 \ub300\uc751\uc774 \ub41c\ub2e4.<\/p>\n<h2>nvidia \uadf8\ub798\ud53d \ub4dc\ub77c\uc774\ubc84 \uc124\uce58 (Using dnf)<\/h2>\n<p>\ub4dc\ub77c\uc774\ubc84 \uc124\uce58\ub3c4 \uc778\ud130\ub137\ub9cc \ub41c\ub2e4\uba74 <code>dnf<\/code> \ub85c \ub69d\ub531 \uc124\uce58\uac00 \uac00\ub2a5\ud558\ub2e4. Extra packages \ub808\ud3ec\ub97c \uba3c\uc800 \ub4f1\ub85d\ud558\uace0<\/p>\n<pre><code class=\"language-bash\"># sudo dnf install epel-release\nInstalled:\n  epel-release-8-18.el8.noarch\n\nComplete!\n\n# sudo dnf config-manager --add-repo https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/rhel8\/x86_64\/cuda-rhel8.repo\nAdding repo from: https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/rhel8\/x86_64\/cuda-rhel8.repo<\/code><\/pre>\n<p>\ucee4\ub110 \uac1c\ubc1c \ud328\ud0a4\uc9c0\ub97c \uc124\uce58\ud574\uc8fc\ub824 \ud588\ub2e4\uac00 \ubcf4\ub2c8 \uace7\uc7a5 \ub418\uc9c0\ub294 \uc54a\uc544\uc11c \uc77c\ub2e8 \ub2e4\uc74c \ub2e8\uacc4\ub85c \ub118\uc5b4\uac14\ub294\ub370<\/p>\n<pre><code class=\"language-bash\"># uname -r\n4.18.0-372.26.1.el8_6.x86_64\n\n# sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)\ncuda-rhel8-x86_64                                                                                         3.8 MB\/s | 2.4 MB     00:00\nExtra Packages for Enterprise Linux 8 - x86_64                                                            297 kB\/s |  16 MB     00:53\nNo match for argument: kernel-devel-4.18.0-372.26.1.el8_6.x86_64\nNo match for argument: kernel-headers-4.18.0-372.26.1.el8_6.x86_64\nError: Unable to find a match: kernel-devel-4.18.0-372.26.1.el8_6.x86_64 kernel-headers-4.18.0-372.26.1.el8_6.x86_64\n<\/code><\/pre>\n<p>\uc774\ubc88 \ub2e8\uacc4\uc5d0\uc11c \ub9c8\uce68 \ucee4\ub110 \ucf54\uc5b4 \ubc84\uc804\uc744 \uc62c\ub824\uc8fc\ub294 \uac83 \uac19\uc544<\/p>\n<pre><code class=\"language-bash\"># sudo dnf install nvidia-driver nvidia-settings\nUpgraded:\n  libwayland-client-1.21.0-1.el8.x86_64   llvm-libs-15.0.7-1.module+el8.8.0+1144+0a4e73bd.x86_64   mesa-dri-drivers-22.3.0-2.el8.x86_64\n  mesa-filesystem-22.3.0-2.el8.x86_64     mesa-libxatracker-22.3.0-2.el8.x86_64\nInstalled:\n  dnf-plugin-nvidia-2.0-1.el8.noarch                        egl-wayland-1.1.9-3.el8.x86_64\n  kernel-core-4.18.0-477.15.1.el8_8.x86_64                  kmod-nvidia-535.54.03-4.18.0-477.15.1-3:535.54.03-3.el8_8.x86_64\n  libvdpau-1.4-2.el8.x86_64                                 mesa-vulkan-drivers-22.3.0-2.el8.x86_64\n  nvidia-driver-3:535.54.03-1.el8.x86_64                    nvidia-driver-libs-3:535.54.03-1.el8.x86_64\n  nvidia-kmod-common-3:535.54.03-1.el8.noarch               nvidia-libXNVCtrl-3:535.54.03-1.el8.x86_64\n  nvidia-settings-3:535.54.03-1.el8.x86_64                  vulkan-loader-1.3.239.0-1.el8.x86_64\n\nComplete!\n<\/code><\/pre>\n<p>\ub2e4\uc2dc \ucee4\ub110 \uac1c\ubc1c \ud328\ud0a4\uc9c0 \uc124\uce58\ub97c \uc2dc\ub3c4\ud574\ubcf4\ub2c8 \uc815\uc0c1\uc801\uc73c\ub85c \uc124\uce58\ub418\uc5c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># sudo dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)\nInstalled:\n  bison-3.0.4-10.el8.x86_64    flex-2.6.1-9.el8.x86_64    kernel-devel-4.18.0-477.15.1.el8_8.x86_64    kernel-headers-4.18.0-477.15.1.el8_8.x86_64    m4-1.4.18-7.el8.x86_64    make-1:4.2.1-11.el8.x86_64\n\nComplete!<\/code><\/pre>\n<p>\ub4dc\ub77c\uc774\ubc84\ub97c \ub9c8\uc800 \uc124\uce58\ud574\uc8fc\uace0<\/p>\n<pre><code class=\"language-bash\"># sudo dnf install nvidia-driver-cuda\nInstalled:\n  cuda-license-10-1-10.1.243-1.x86_64                               cuda-nvml-dev-10-1-10.1.243-1.x86_64\n  nvidia-driver-cuda-3:535.54.03-1.el8.x86_64                       nvidia-driver-cuda-libs-3:535.54.03-1.el8.x86_64\n  nvidia-persistenced-3:535.54.03-1.el8.x86_64                      ocl-icd-2.2.12-1.el8.x86_64\n  opencl-filesystem-1.0-6.el8.noarch\n\nComplete!\n\n# sudo dnf install cuda-driver\nInstalled:\n  cuda-drivers-535.54.03-1.x86_64                                  libX11-devel-1.6.8-5.el8.x86_64\n  libXau-devel-1.0.9-3.el8.x86_64                                  libxcb-devel-1.13.1-1.el8.x86_64\n  nvidia-driver-NVML-3:535.54.03-1.el8.x86_64                      nvidia-driver-NvFBCOpenGL-3:535.54.03-1.el8.x86_64\n  nvidia-driver-devel-3:535.54.03-1.el8.x86_64                     nvidia-libXNVCtrl-devel-3:535.54.03-1.el8.x86_64\n  nvidia-modprobe-3:535.54.03-1.el8.x86_64                         nvidia-xconfig-3:535.54.03-1.el8.x86_64\n  xorg-x11-proto-devel-2020.1-3.el8.noarch\n\nComplete!<\/code><\/pre>\n<p>\ub4dc\ub77c\uc774\ubc84 \uc124\uce58 \uc9c1\ud6c4 <code>nvidia-smi<\/code> \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ud1b5\uc2e0 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud558\ub294\ub370<\/p>\n<pre><code class=\"language-bash\"># nvidia-smi\nNVIDIA-SMI has failed because it couldn\\&#039;t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.<\/code><\/pre>\n<p>\uc7ac\ubd80\ud305 \ud558\uace0\ub098\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \ub3d9\uc791\ud55c\ub2e4. 4GB \uc758 \uc791\uace0 \uc18c\uc911\ud55c \uadf8\ub798\ud53d \uba54\ubaa8\ub9ac ..<\/p>\n<pre><code class=\"language-bash\"># sudo shutdown -r now\n# nvidia-smi\nSat Jul 22 12:04:23 2023\n+---------------------------------------------------------------------------------------+\n| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |\n|-----------------------------------------+----------------------+----------------------+\n| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |\n| Fan  Temp   Perf          Pwr:Usage\/Cap |         Memory-Usage | GPU-Util  Compute M. |\n|                                         |                      |               MIG M. |\n|=========================================+======================+======================|\n|   0  NVIDIA GeForce GTX 1050 Ti     Off | 00000000:01:00.0  On |                  N\/A |\n| 40%   37C    P8              N\/A \/  75W |    246MiB \/  4096MiB |      0%      Default |\n|                                         |                      |                  N\/A |\n+-----------------------------------------+----------------------+----------------------+\n\n+---------------------------------------------------------------------------------------+\n| Processes:                                                                            |\n|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |\n|        ID   ID                                                             Usage      |\n|=======================================================================================|\n|    0   N\/A  N\/A      6190      G   \/usr\/libexec\/Xorg                            71MiB |\n|    0   N\/A  N\/A      6300      G   \/usr\/bin\/gnome-shell                        171MiB |\n+---------------------------------------------------------------------------------------+<\/code><\/pre>\n<h2>nvidia Docker \uc124\uce58<\/h2>\n<p>\uce5c\uc808\ud55c \uac00\uc774\ub4dc \ubb38\uc11c\ub97c \ub530\ub77c \uba3c\uc800 \ub3c4\ucee4\uc640 \ucee8\ud14c\uc774\ub108 \ub4f1\ub4f1\uc744 \uc5c5\ub370\uc774\ud2b8 \ud574\uc8fc\uace0<\/p>\n<pre><code class=\"language-bash\"># sudo dnf config-manager --add-repo=https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\nAdding repo from: https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\n\n# sudo dnf repolist -v\n...\nRepo-id            : docker-ce-stable\nRepo-name          : Docker CE Stable - x86_64\nRepo-revision      : 1688760774\nRepo-updated       : Sat Jul  8 05:12:54 2023\nRepo-pkgs          : 174\nRepo-available-pkgs: 174\nRepo-size          : 3.2 G\nRepo-baseurl       : https:\/\/download.docker.com\/linux\/centos\/8\/x86_64\/stable\nRepo-expire        : 172800 second(s) (last: Sat Jul 22 11:53:10 2023)\nRepo-filename      : \/etc\/yum.repos.d\/docker-ce.repo\n...\n\n# sudo dnf install -y https:\/\/download.docker.com\/linux\/centos\/7\/x86_64\/stable\/Packages\/containerd.io-1.4.3-3.1.el7.x86_64.\nUpgraded:\n  containerd.io-1.6.21-3.1.el8.x86_64                                   docker-ce-3:24.0.4-1.el8.x86_64\n\nComplete!\n\n# sudo systemctl --now enable docker\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/docker.service \u2192 \/usr\/lib\/systemd\/system\/docker.service.\n\n# sudo docker run --rm hello-world\nUnable to find image &#039;hello-world:latest&#039; locally\nlatest: Pulling from library\/hello-world\n719385e32844: Pull complete\nDigest: sha256:926fac19d22aa2d60f1a276b66a20eb765fbeea2db5dbdaafeb456ad8ce81598\nStatus: Downloaded newer image for hello-world:latest\n\nHello from Docker!\nThis message shows that your installation appears to be working correctly.\n\nTo generate this message, Docker took the following steps:\n 1. The Docker client contacted the Docker daemon.\n 2. The Docker daemon pulled the &quot;hello-world&quot; image from the Docker Hub.\n    (amd64)\n 3. The Docker daemon created a new container from that image which runs the\n    executable that produces the output you are currently reading.\n 4. The Docker daemon streamed that output to the Docker client, which sent it\n    to your terminal.\n\nTo try something more ambitious, you can run an Ubuntu container with:\n $ docker run -it ubuntu bash\n\nShare images, automate workflows, and more with a free Docker ID:\n https:\/\/hub.docker.com\/\n\nFor more examples and ideas, visit:\n https:\/\/docs.docker.com\/get-started\/<\/code><\/pre>\n<p>\ucee8\ud14c\uc774\ub108 \ud234\ud0b7\uc744 \uc774\uc5b4\uc11c \uc124\uce58\ud574\uc8fc\ub294\ub370 rocky \uc5d0\uc11c\ub294 \uac00\uc774\ub4dc \ubb38\uc11c\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uadf8\ub300\ub85c \uc2e4\ud589\ud558\uba74 <code>Unsupported distribution<\/code> \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># echo $(. \/etc\/os-release;echo $ID$VERSION_ID)\nrocky8.6\n\n# distribution=$(. \/etc\/os-release;echo $ID$VERSION_ID) &amp;&amp; curl -s -L https:\/\/nvidia.github.io\/libnvidia-container\/$distribution\/libnvidia-container.repo | sudo tee \/etc\/yum.repos.d\/nvidia-container-toolkit.repo\n# Unsupported distribution!\n# Check https:\/\/nvidia.github.io\/libnvidia-container<\/code><\/pre>\n<p><code>rocky8.x<\/code> \uc640 \uac19\uc774 \ub9c8\uc774\ub108 \ubc84\uc804\uc744 \ubc14\uafd4\ubd10\ub3c4 \uc81c\ub300\ub85c \ub3d9\uc791\uc744 \uc548 \ud574\uc11c \ubcf4\ub2c8 \ub77d\ud76c\ub294 \uacf5\uc2dd \uc9c0\uc6d0\ud558\ub294 \ubc30\ud3ec\ud310\uc774 \uc544\ub2cc \uac83 \uac19\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/oboki.net\/workspace\/wp-content\/uploads\/2023\/07\/image-1690097555949.png\" alt=\"file\" \/><\/p>\n<p><a href=\"https:\/\/docs.nvidia.com\/datacenter\/cloud-native\/container-toolkit\/latest\/install-guide.html#linux-distributions\">https:\/\/docs.nvidia.com\/datacenter\/cloud-native\/container-toolkit\/latest\/install-guide.html#linux-distributions<\/a><\/p>\n<p>\ub300\uc2e0 <code>rhel8.4<\/code> \ub85c \uace0\uc815\uc2dc\ucf1c\uc8fc\uace0 \ub098\uba38\uc9c0 \ub2e8\uacc4\ub97c \uc774\uc5b4\uc11c \uc9c4\ud589\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># distribution=rhel8.4 &amp;&amp; curl -s -L https:\/\/nvidia.github.io\/libnvidia-container\/$distribution\/libnvidia-container.repo | sudo tee \/etc\/yum.repos.\nd\/nvidia-container-toolkit.repo\n[libnvidia-container]\nname=libnvidia-container\nbaseurl=https:\/\/nvidia.github.io\/libnvidia-container\/stable\/centos8\/$basearch\nrepo_gpgcheck=1\ngpgcheck=0\nenabled=1\ngpgkey=https:\/\/nvidia.github.io\/libnvidia-container\/gpgkey\nsslverify=1\nsslcacert=\/etc\/pki\/tls\/certs\/ca-bundle.crt\n\n[libnvidia-container-experimental]\nname=libnvidia-container-experimental\nbaseurl=https:\/\/nvidia.github.io\/libnvidia-container\/experimental\/centos8\/$basearch\nrepo_gpgcheck=1\ngpgcheck=0\nenabled=0\ngpgkey=https:\/\/nvidia.github.io\/libnvidia-container\/gpgkey\nsslverify=1\nsslcacert=\/etc\/pki\/tls\/certs\/ca-bundle.crt\n\n# sudo dnf clean expire-cache --refresh\nCache was expired\n0 files removed\n# sudo dnf install -y nvidia-container-toolkit\nInstalled:\n  libnvidia-container-tools-1.13.5-1.x86_64      libnvidia-container1-1.13.5-1.x86_64      nvidia-container-toolkit-1.13.5-1.x86_64\n\nComplete!<\/code><\/pre>\n<p>\ub3c4\ucee4 \uc124\uc815\uae4c\uc9c0 \ub9c8\ubb34\ub9ac \ud574\uc8fc\uba74<\/p>\n<pre><code class=\"language-bash\"># sudo nvidia-ctk runtime configure --runtime=docker\nINFO[0000] Loading docker config from \/etc\/docker\/daemon.json\nINFO[0000] Config file does not exist, creating new one\nINFO[0000] Wrote updated config to \/etc\/docker\/daemon.json\nINFO[0000] It is recommended that the docker daemon be restarted.\n# sudo systemctl restart docker\n# sudo docker run --rm --runtime=nvidia --gpus all nvidia\/cuda:11.6.2-base-ubuntu20.04 nvidia-smi\nUnable to find image &#039;nvidia\/cuda:11.6.2-base-ubuntu20.04&#039; locally\n11.6.2-base-ubuntu20.04: Pulling from nvidia\/cuda\n56e0351b9876: Pull complete\n0e353182dfa4: Pull complete\n63add13c711b: Pull complete\n1210b79751b0: Pull complete\neb1e2ff09225: Pull complete\nDigest: sha256:4b0c83c0f2e66dc97b52f28c7acf94c1461bfa746d56a6f63c0fef5035590429\nStatus: Downloaded newer image for nvidia\/cuda:11.6.2-base-ubuntu20.04\nSat Jul 22 03:26:28 2023\n+---------------------------------------------------------------------------------------+\n| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |\n|-----------------------------------------+----------------------+----------------------+\n| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |\n| Fan  Temp   Perf          Pwr:Usage\/Cap |         Memory-Usage | GPU-Util  Compute M. |\n|                                         |                      |               MIG M. |\n|=========================================+======================+======================|\n|   0  NVIDIA GeForce GTX 1050 Ti     Off | 00000000:01:00.0 Off |                  N\/A |\n| 40%   32C    P8              N\/A \/  75W |    145MiB \/  4096MiB |      0%      Default |\n|                                         |                      |                  N\/A |\n+-----------------------------------------+----------------------+----------------------+\n\n+---------------------------------------------------------------------------------------+\n| Processes:                                                                            |\n|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |\n|        ID   ID                                                             Usage      |\n|=======================================================================================|\n+---------------------------------------------------------------------------------------+<\/code><\/pre>\n<p>\ub05d.<\/p>\n<h2>\ucc38\uace0<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.nvidia.com\/datacenter\/tesla\/tesla-installation-notes\/index.html#centos8\">https:\/\/docs.nvidia.com\/datacenter\/tesla\/tesla-installation-notes\/index.html#centos8<\/a><\/li>\n<li><a href=\"https:\/\/docs.nvidia.com\/datacenter\/cloud-native\/container-toolkit\/latest\/install-guide.html#installing-on-centos-7-8\">https:\/\/docs.nvidia.com\/datacenter\/cloud-native\/container-toolkit\/latest\/install-guide.html#installing-on-centos-7-8<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\uc791\uc5c5\uc6a9 \ub370\uc2a4\ud06c\ud0d1\uc5d0 gpu \ub97c \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\uba74\uc11c \ub0a8\ub294 gpu \uce74\ub4dc\uac00 \uc0dd\uacbc\ub294\ub370 \uc774\uac78 \uc11c\ubc84\uc5d0 \ubd99\uc5ec \uc368\ubcf4\ub824\uace0 \ud55c\ub2e4. 1050Ti \uc778\ub370, \ucd94\uac00 \ubcf4\uc870 \uc804\uc6d0\ub3c4 \ud544\uc694\uc5c6\ub294 SFF \uce74\ub4dc\uc5ec\uc11c \uc11c\ubc84\uc6a9\uc73c\ub85c \ucda9\ubd84(?)\ud558\uc9c0 \uc54a\uc744\uae4c \uc2f6\ub2e4. \uace0\uc0ac\uc591\ub3c4 \uc544\ub2c8\uace0 Pascal \uc544\ud0a4\ud14d\ucc98\ub85c \uc5f0\uc2dd\uc774 \uc624\ub798\ub41c \uac83\uc774\uae34 \ud558\uc9c0\ub9cc \ud68c\uc0ac \uc5c5\ubb34 \ud658\uacbd\uc5d0\uc11c\ub294 \uc778\ud130\ub137\uc744 \ud65c\uc6a9\ud55c \uc774\ub7f0\uc800\ub7f0 \ud14c\uc2a4\ud2b8\uac00 \uc27d\uc9c0 \uc54a\ub2e4\ubcf4\ub2c8,, \uc6d0\uaca9\uc73c\ub85c \uac00\ubccd\uac8c \ud14c\uc2a4\ud2b8 \ud574\ubcfc \ud658\uacbd\uc73c\ub85c \uc4f8\ub9cc\ud560 \uac83 \uac19\ub2e4. \ub3c4\ucee4\ub97c \ud65c\uc6a9\ud558\ub294\uac8c \ub354 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[162,3,44],"tags":[],"class_list":["post-1867","post","type-post","status-publish","format-standard","hentry","category-docker","category-linux","category-system"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=1867"}],"version-history":[{"count":0,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1867\/revisions"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=1867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=1867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=1867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}