หมวดหมู่: Cloud Computing

Docker: Oracle-DB ContainerDocker: Oracle-DB Container

การสร้าง Docker container เพื่อ run oracle เป็นวิธีที่ยอดเยี่ยมสำหรับนักพัฒนา เพราะช่วยให้เราติดตั้งฐานข้อมูลขนาดใหญ่ได้ภายในไม่กี่นาที โดยไม่ต้องลงโปรแกรมหนักเครื่องแบบสมัยก่อน

  1. สร้าง folder เก็บข้อมูลก่อน โดยคำสั่ง
    mkdir -p /Users/Shared/Portable/Dockers/oracle
  2. ไปที่ folder
    cd /Users/Shared/Portable/Dockers/oracle
  3. สร้างไฟล์
    touch docker-compose.yml
  4. ใส่เนื้อหา

    SQL

    services: oracle: container_name: docker-oracle environment: - ORACLE_PASSWORD=SAj44GMbSLM8 # Use the same password style you like - APP_USER=Rwmm92CEWJn3 - APP_USER_PASSWORD=raAEWgr9VWEV image: gvenzl/oracle-free:latest platform: linux/amd64 ports: - "1521:1521" restart: unless-stopped volumes: - ./data:/opt/oracle/oradata
    
  • container_name เช่น docker-oracle
  • ORACLE_PASSWORD เช่น SAj44GMbSLM8
  • APP_USER เช่น Rwmm92CEWJn3
  • APP_USER_PASSWORD เช่น raAEWgr9VWEV
  • ports เช่น 1521
  • ติดตั้งและรัน
    docker compose up -d

  • ทดสอบ

    ดู log
    หลังจากสั่ง Run แล้ว Oracle ต้องใช้เวลาสักพัก ในการ Setup ฐานข้อมูลภายใน คุณสามารถเช็คสถานะได้ด้วยคำสั่ง:
    docker logs -f docker-oracle

    ใช้คำสั่ง
    docker exec -it docker-oracle bash

    • -i : ทำให้เราโต้ตอบกับ Container ได้
    • -t : จำลองหน้าจอ Terminal ให้เราพิมพ์ได้สะดวก

    การเข้าใช้งาน SQL*Plus (จัดการ Database)

    ถ้าคุณต้องการรันคำสั่ง SQL หรือจัดการ User โดยไม่ผ่านโปรแกรมภายนอก ให้ใช้คำสั่งนี้

    เข้าใช้งานในฐานะ SYSDBA

    docker exec -it docker-oracle sqlplus sys/SAj44GMbSLM8@FREEPDB1 as sysdba

    หรือเข้าแบบปกติ (ใส่ Password ทีหลังเพื่อความปลอดภัย)

    docker exec -it docker-oracle sqlplus system@FREEPDB1

    การรันคำสั่งเดี่ยว ๆ

    บางครั้งเราแค่ต้องการรันคำสั่งเดียวแล้วจบไป เช่น การเช็คพื้นที่ Disk ภายใน Container:

    docker exec -it docker-oracle df -h


    ⚠️ ข้อควรระวังและการจัดการไฟล์

    เนื่องจากคุณมีการทำ Volume Mapping ไว้ที่ ./data หากคุณต้องการก๊อปปี้ไฟล์ Config หรือ Script SQL เข้าไปรัน คุณมี 2 ทางเลือก

    1. วางไฟล์ในโฟลเดอร์ ./data: ไฟล์จะโผล่ใน /opt/oracle/oradata ทันที
    2. ใช้คำสั่ง docker cp:
      docker cp my_script.sql docker-oracle:/tmp/

    สรุปคำสั่งที่ใช้บ่อยสำหรับ Oracle

    งานที่ต้องการทำคำสั่งที่ใช้
    เช็ค Log แบบ Real-timedocker logs -f docker-oracle
    เข้าไปพิมพ์คำสั่ง Linuxdocker exec -it docker-oracle bash
    รัน SQL ภายในdocker exec -it docker-oracle sqlplus system/SAj44GMbSLM8@FREEPDB1
    หยุดการทำงานdocker stop docker-oracle

    อ่านเพิ่มเติม


    อ่านเพิ่มเติม