https://github.com/kongruksiamza/learning-docker
โค้ดประกอบการสอน Docker เบื้องต้น
https://github.com/kongruksiamza/learning-docker
docker-container doker
Last synced: about 1 month ago
JSON representation
โค้ดประกอบการสอน Docker เบื้องต้น
- Host: GitHub
- URL: https://github.com/kongruksiamza/learning-docker
- Owner: kongruksiamza
- Created: 2025-07-17T05:25:51.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-08-03T06:58:17.000Z (2 months ago)
- Last Synced: 2025-08-03T08:41:07.054Z (2 months ago)
- Topics: docker-container, doker
- Language: Python
- Homepage:
- Size: 76.2 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 💻 Flask Application
#### ติดตั้ง Python
- ดาวน์โหลด : https://python.org/#### ติดตั้ง Flask
```
pip install flask
```
#### แสดงรายการ Package
```
pip list
```#### โค้ดประกอบการสอน app.py (Flask)
```
from flask import Flask
app = Flask(__name__)@app.route('/')
def home():
return "Hello Application
"
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 .
```## 🚪 Port Mapping
```
docker run --rm -p 3000:5000 --name mycontainer my-python-app:0.1
```
## 🛠️ Docker Compose#### compose.yaml
```
name: myprojectservices:
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 "
".join([f"ชื่อ : {user['name']} , อายุ {user['age']} ปี
" 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: myprojectservices:
web:
build: .
ports:
- "5000:5000"
db:
image: mongo
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
- mongo-configdb:/data/configdbvolumes:
mongo-data:
mongo-configdb:
```## 📚 หลักสูตรที่เกี่ยวข้อง (ภาษาไทย)
- [Docker](https://www.youtube.com/playlist?list=PLltVQYLz1BMCid5BGMfvPKUYg7gl6p2ZN)
- [Python & Flask Framework](https://www.youtube.com/playlist?list=PLltVQYLz1BMBe14u-5pxxEsbJSbdxd1Vs)
- [MongoDB](https://www.youtube.com/playlist?list=PLltVQYLz1BMDcG4oMP-hB3VCmIWVXF-fX)
- [Visual Studio Code](https://www.youtube.com/playlist?list=PLltVQYLz1BMDyQX1B6IccCOeO3TTIsZmp)