การใช้งาน SQL Server แบบ Container ด้วย Podman (Docker ก็ใช้ได้นะ)

DevOps

การใช้งาน SQL Server แบบ Container ด้วย Podman (Docker ก็ใช้ได้นะ)

เริ่มต้นใช้งาน SQL Server ด้วย Container ผ่าน Podman หรือ Docker พร้อมตัวอย่าง docker-compose ใช้งานได้ทันที

9 วันที่ผ่านมา

1 min read

ส่วนตัวแล้วไม่ได้ใช้งาน SQL Server บ่อยนัก แต่ได้มีโอกาสใช้เพราะโปรเจกต์หนึ่งจำเป็นต้องใช้ ก็เลยเขียน docker-compose เก็บไว้กันลืม และไม่อยากเก็บไว้คนเดียว เลยเขียนเป็น blog post ไว้ด้วยละกัน เผื่อใครสนใจหรือกำลังมองหาอยู่ จะได้นำไปลองใช้งานกันได้

ก่อนเริ่มใช้งาน อย่าลืมปรับ RAM ของ Podman หรือ Docker ให้ไม่น้อยกว่า 2GB (SQL Server ต้องการขั้นต่ำ) และแนะนำให้จัดสรร CPU อย่างน้อย 2 คอร์เพื่อประสิทธิภาพที่ดีขึ้น

🐳 เตรียมไฟล์ docker-compose.yml

เริ่มจากสร้างไฟล์ docker-compose.yml เพื่อใช้สำหรับสร้าง container

version: "3.8"
 
services:
  mssql_db:
    image: mcr.microsoft.com/mssql/server
    container_name: mssql_db
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_SA_PASSWORD=TH1S_IS_SECRET_D0_N0T_TELL_ANYONE
    ports:
      - "1433:1433"
    volumes:
      - sqlserver_data:/var/opt/mssql
    restart: unless-stopped
 
volumes:
  sqlserver_data:

🏃‍♂️ ลองรัน docker-compose กัน

เรามารัน docker-compose ด้วยคำสั่ง podman-compose up -d (ใครใช้ docker ก็ใช้ docker-compose up -d ได้เลย)

จากนั้นก็รอ pull image และสร้าง container สักครู่

6d1d4f77e839f7ad562305ee68ebc1812f65c0c237e77b5840bd446cd28c205b
Trying to pull mcr.microsoft.com/mssql/server:latest...
Getting image source signatures
Copying blob sha256:d9043883789c6369728ef8c1a3e4d85ee9be27955e1852fcee7c41e4e3074344
Copying blob sha256:86752e6fd4ef2ac6357850f59d6ae540f767c259c374516dc352039a9489d33b
Copying blob sha256:186a7f1a30ef240c4f08e6ab4705bb9dfb93b27e805b6b44644d5beb01c28f29
Copying config sha256:2b41d0be82839692f678a709e8b7dd6106ee4776b0e70759c59b067730058b04
Writing manifest to image destination
WARNING: image platform (linux/amd64) does not match the expected platform (linux/arm64)
5b5a78e61563edf582e527af84ce9832f66fc94f8022e2c9b64186a87e657fb8

รันคำสั่ง podman ps (docker ps สำหรับ docker) เพื่อดูว่า container ถูกสร้างขึ้นเรียบร้อย และสามารถทำงานได้ปกติ

CONTAINER ID  IMAGE                                  COMMAND               CREATED         STATUS         PORTS                   NAMES
5b5a78e61563  mcr.microsoft.com/mssql/server:latest  /opt/mssql/bin/sq...  20 seconds ago  Up 20 seconds  0.0.0.0:1433->1433/tcp  mssql_db

🚀 ลองทดสอบด้วย DBeaver

หลังจากที่สร้าง Container เสร็จ เราลองมาเชื่อมด้วย DBeaver กันดูหน่อย

  1. เริ่มจากเพิ่ม Connection ใหม่ แล้วเลือก SQL Server
Select SQL Server
Select SQL Server
  1. ใส่ user กับ password โดย user จะเป็น sa และ password จะเป็นที่เรากำหนดไว้ใน docker-compose file
Add Config SQL Server
Add Config SQL Server
  1. ลอง Test Connection ถ้าขึ้นแบบนี้ก็แสดงว่าเชื่อมต่อได้ ไม่ติดปัญหาอะไร
Test Connection SQL Server
Test Connection SQL Server
  1. เพียงเท่านี้ก็เรียบร้อย เราก็สามารถใช้ SQL Server บน Container ได้แล้ว
Successfully SQL Server
Successfully SQL Server

Tags:

SQL Server Podman Docker