DEV Community

Pramoth Suwanpech
Pramoth Suwanpech

Posted on

รัน OCI Container ด้วย runc

runc เป็น command line interface (CLI) ที่เอาไว้รัน container ที่เป็นไปตาม spec ของ OCI ซึ่งใน CentOS 8 มีติดตั้งมาให้เรียบร้อย (น่าจะเพราะว่า podman ใช้)

ในตัวอย่างนี้ เราจะเอา Docker container มาทำให้อยู่ในรุปแบบ OCI format จากนั้นก็ run container ตัวใหม่เราได้เลย ซึ่งในตัวอย่างนี้จะใช้ podman แทน docker นะครับ

mkdir my-container
cd my-container

#rootfs จะเป็น os / ของ container
mkdir rootfs

# สร้าง docker container และ export container ไปไว้ใน rootfs
podman  export $(podman create ubuntu) | tar -C rootfs -xf -

#สร้าง OCI config file
runc spec

เมื่อ runc spec จะได้ไฟล์ config.json ซึ่งเราสามารถแก้ไขตามต้องการได้ ในตัวอย่างนี้ผมแก้จาก container เดิมที่ start shell เป็นพิมพ์ os-release ออกมา โดยแก้ดังนี้

 "args": [
                        "cat","/etc/os-release"
          ],

เมื่อแก้เสร็จก็พร้อมรันได้เลย

sudo runc run my-ubuntu

โดย my-ubuntu เป็นชื่อของ container
ได้ผลลัพธ์ดังนี้

NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bioni

เพิ่มเติม
https://github.com/opencontainers/runc

Top comments (0)