Docker 101 (LAMP Stack on Ubuntu)

Docker — เป็น package management 
หรือพูดง่ายๆคือเป็น vm ในรูปแบบที่เบา ไว สามารถ pack แล้วเก็บไว้บน cloud ของ docker ได้
แล้วสามารถดึงลงเอามาใช้งานในเครื่องเราก็ได้

เราสามารถจำลอง vm ของเครื่อง LAMP, Memcached, redis ไว้เทสใน localhost บนเครื่องของเรา
สามารถทำเครื่องของเราให้กลายเป็น PaaS

วิธีการติดตั้ง docker > http://docs.docker.io/en/latest/installation/

การติดตั้ง LAMP ใน docker

  1. ดึง docker ลงมาไว้ในเครื่องเราก่อน
    $ docker run -i -t ubuntu:12.10 /bin/bash
    # คำสั่งนี้คือการสั่งให้ docker ดึง image ของ vm ที่ชื่อว่า ubuntu เวอร์ชั่น 12.10 ลงมาในเครื่องเราและทำการรัน ผลลัพท์ที่ได้คือเราจะเข้าไปอยู่ใน vm ตัวดังกล่าว
  2. อัพเดท apt-get และติดตั้ง LAMP Stack ตามธรรมดา (ตอนนี้เราอยู่ใน vm ของ docker แล้วนะ)
    $ apt-get update 
    $ apt-get install apache2
    $ apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
    $ apt-get install php5 libapache-mod-php5 php5-mcrypt
    $ vim /etc/apache2/mods-enabled/dir.conf
    # เพิ่ม index.php ใน DirectoryIndex
    $ vim /var/www/index.php
    # เพิ่ม php script เพื่อเทส
    $ service apache2 start
    $ apt-get install lynx
    # ลง lynx browser
    $ lynx http://localhost
    # เปิด browser เพื่อเทส
  3. เปิด terminal ใหม่ เพื่อทำการตรวจสอบและ save vm ที่เราสร้างเมื่อกี้
    $ docker ps 
    # คำสั่งนี้ใช้เปิดดู​ docker vm ที่กำลังเปิดใช้งานในตอนนี้ ซึ่งจะแสดง id ของ vm ที่เปิดใช้งานในตอนนี้
    $ docker commit -m “Initial LAMP Stack on Ubuntu 12.10” [docker-id] [your-docker-name]
    # คำสั่งนี้เป็นการ save docker บน docker cloud โดย docker-id คือ id ที่กำลังรันอยู่ในตอนนี้ your-docker-name คือ ชื่อของ docker ที่เราต้องการจะ save สามารถใช้เป็นชื่อ username ของเราได้ เช่น ilumin/lamp
  4. ปิด docker สามารถทำได้ 2 วิธี
    $ exit
    # กรณีที่อยู่ใน docker vm ก็ exit ออกมาเลย ตรงนี้จะหมายถึงการปิดเครื่อง vm ทันที
    $ docker kill [docker-id]
    # กรณีที่อยู่นอก docker vm สามารถ kill process โดยใช้ docker id ที่ได้จากคำสั่ง docker ps
  5. การเปิด docker ที่เราสร้าง
    $ docker run -i -t [your-docker-name] /bin/bash
    # แค่นี้เราก็ได้ vm ที่เราทำเมื่อกี้นี้เลย

ณ ตอนที่เขียนบทความนี้ docker ยังอยู่ในเวอร์ชั่นที่ 0.6
ยังไม่รองรับทุก os (ใช้ได้เฉพาะ Linux ในบาง Kernel ส่วน os อื่นๆต้องรันด้วย vagrant ซึ่งเป็นตัวจัดการ vm ของฝั่ง virtualbox)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s