Run containers with Podman on WSL2 Part 1

Part 1  (แพลนมี Part 2 แหล่ะ จะพยายามมีวินัยมาบล็อกเก็บไว้ ^_^)

เบื้องต้นคือ Windows เองต้องรองรับและเปิด WSL2 ขั้นตอนการเปิดก็ตามนี้
1. Enable Windows Subsystem for Linux (WSL)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2. Enable Windows Virtual Machine Platform

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3. อัพเดต Linux kernel to the latest version ดาวน์โหลดแพคเกจ

4. กำหนดให้ WSL2 เป็นค่า Default

wsl --set-default-version 2

5. ติดตั้ง Linux ดิสโทรที่ต้องการ สามารถเลือกได้จาก Store หรือ List ตัวที่ออนไลน์พร้อมติดตั้งโดยใช้คำสั่ง

wsl --list --online

5.1 แต่เราจะเลือก Alpine Distro แทนใน Part 1 นี้ ไปดูรายละเอียดของ Distro นี้กันได้ที่นี่ ซึ่งมีคนทำไว้สำหรับ WSL2 แล้ว

https://github.com/yuk7/AlpineWSL

ดาวน์โหลดตัวเวอร์ชั่น 3.15 และคลิกที่ไฟล์ Alpine.exe เพื่อติดตั้งได้เลย เป็นอันเสร็จสิ้น

ลิสต์ Distro ที่เราได้ติดตั้งไปแล้วด้วยคำสั่ง

wsl --list --verbose

ถ้าติดตั้งสำเร็จจะเห็นรายการ Distro “Alpine” ก็เป็นอันเสร็จสิ้น

6. ต่อไปจะเป็นการใช้งาน Alpine ให้เปิด PowerShell และเลือก Distro Alpine ตามนี้

wsl -d Alpine

7. ให้ Update package และเริ่มการติดตั้ง podman ตามนี้

apk update && apk add podman

มีแพคเกจ podman-compose (ใช้แทน docker-compose) ที่ต้องติดตั้งเพิ่มเติม ซึ่งจะต้องเพิ่ม repository เข้าไป และต่อด้วยการติดตั้ง แพคเกจตามลำดับ

echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
apk update && apk add podman-compose@testing

เมื่อติดตั้งเรียบร้อย ลองทดสอบการใช้งานด้วยการรัน  compose.yml ไฟล์ตามนี้

version: '3'
services:
  nginx:
    container_name: nginx
    image: docker.io/library/nginx:alpine
    volumes:
      - nginx:/etc/nginx
    ports:
      - 1080:80
      - 1443:443
    tty: true
    restart: unless-stopped
    networks:
      - nginxnetwork
    command: [nginx-debug, '-g', 'daemon off;']

volumes:
  nginx:

networks:
  nginxnetwork:
    name: nginxnetwork
    external: true

จบปิ๊ง ^__^