วันนี้มานั่งฟังการแบ่งปันเรื่อง Docker ที่ SPRINT3R
ตั้งแต่เรื่องพื้นฐานไปยัน Docker Swarm กันเลย !!
ดังนั้นจึงลองมาสร้างสิ่งที่ต้องการนิดหน่อย
คือการเตรียม environment ไว้สำหรับ Python project
ประเด็นหลัก ๆ คือการจัดการ library หรือ dependency ต่าง ๆ
ปล. ปกติจะใช้งาน virtualenv ซึ่งทำงานได้แจ่มมาก ๆ
ทำให้เราจัดการ dependency ต่าง ๆ ตาม version ของ python บนเครื่องเดียวกัน
แต่ถ้าต้องการเตรียม environment ต่าง ๆ เพิ่มล่ะ เช่น
- Database
- Messaging server
- Search server
เริ่มด้วยวิธีง่ายสุด ๆ คือ ใช้ Dockerfile อย่างเดียว
โดย library ต่าง ๆ ของระบบงานจะอยู่ในไฟล์ requirments.txt ประกอบไปด้วย- Flask
- Jinja2
- Werkzeug
- distribute
- wsgiref
ขั้นที่ 1 ทำการสร้าง machine ด้วย Docker machine
ตั้งชื่อว่า default [code]$docker-machine create --driver virtualbox default[/code] จากนั้นเข้าใจงาน machine default ซะ [code] $docker-machine env default $eval "$(docker-machine env default)" [/code]ขั้นที่ 2 สร้าง Dockerfile สำหรับระบบงาน
โดยสิ่งที่ต้องการประกอบไปด้วย- ใช้ระบบปฏิบัติการ Alpine เพราะว่าขนาดมันเล็กและเพียงพอต่อการใช้งาน
- ทำการติดตั้ง package ต่าง ๆ ที่ต้องการผ่าน apt-get เช่น python เป็นต้น
- ทำการ deploy ระบบงาน หรือ ทำการ clone มาจาก repository ก็ได้
- ทำการติดตั้ง library/dependency ต่าง ๆ ผ่าน pip
ขั้นที่ 3 สร้าง container ใช้งานกันเถอะ
โดยสร้าง container มาจาก Image ที่สร้างจากขั้นที่ 3 นั่นเอง ด้วยคำสั่ง [code] $docker run --name my_python_container -p 8000:8888 -i -t my_python_image [/code] คำอธิบาย- ตั้งชื่อ container ว่า my_python_container
- ทำการ mapping port 8000 เข้ากับ port ของ container ซึ่งกำหนดไว้เป็น 8888 ทำให้สามารถใช้งานผ่าน port 8000 ได้เลย
- สร้างมาจาก image ชื่อว่า my_python_image