Skip to content

kongruksiamza/learning-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

โค้ดประกอบการสอน Docker เบื้องต้น


kongruksiamza

💻 Flask Application

ติดตั้ง Python

ติดตั้ง Flask

pip install flask

แสดงรายการ Package

pip list

โค้ดประกอบการสอน app.py (Flask)

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
   return "<h1>Hello Application<h1>"

if __name__ == '__main__':
   app.run(host="localhost", port=5000)

รันแอพพลิเคชั่น

python app.py

📝 Dockerfile

สร้างไฟล์เก็บรายชื่อ Package

pip freeze > requirements.txt

คำสั่งใน Dockerfile

FROM python:3.13
WORKDIR /kongruksiam/app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

Build Image

docker build -t <image-name:tag> .

🚪 Port Mapping

docker run --rm -p 3000:5000 --name mycontainer my-python-app:0.1

🛠️ Docker Compose

compose.yaml

name: myproject

services:
  web:
    build: .
    ports:
      - "5000:5000"

🗄️ PyMongo (Driver)

ติดตั้ง Package

pip install pymongo

เชื่อมต่อฐานข้อมูล

client = MongoClient("mongodb://localhost:27017")
db = client["mydb"]
collection = db["users"]

กำหนดข้อมูลเริ่มต้น

def init_data():
   if collection.count_documents({}) == 0:
      collection.insert_one({"name": "ก้องรักสยาม", "age": 30})
      print("บันทึกข้อมูลเรียบร้อย")

แสดงข้อมูลในหน้าเว็บ

@app.route('/data')
def get_data():
    users = collection.find()
    return "<br>".join([f"ชื่อ : {user['name']} , อายุ {user['age']} ปี <hr>" for user in users])

💾 MongoDB (Shell)

ฐานข้อมูล

show dbs
use mydb

บันทึกข้อมูลรายการเดียว

db.users.insertOne({name:"ชาลี",age:20}) 

บันทึกข้อมูลหลายรายการ

db.users.insertMany([{name:"สมหมาย",age:18},{name:"สมชาย",age:25},{name:"สมหญิง",age:20}])

🛢️ Volumes

name: myproject

services:
  web:
    build: .
    ports:
      - "5000:5000"
  db:
    image: mongo
    ports:
      - "27017:27017"
    volumes:
      - mongo-data:/data/db
      - mongo-configdb:/data/configdb

volumes:
  mongo-data:
  mongo-configdb:

📚 หลักสูตรที่เกี่ยวข้อง (ภาษาไทย)

About

โค้ดประกอบการสอน Docker เบื้องต้น

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors