อยากลอง “Docker” ง่ายนิดเดียว ไม่เสียตังค์ ฟรี แถมใช้ได้ทุกที่ ทุกเวลา

Container คือ อะไร ? Docker คือ อะไร ? DevOps คือ อะไร ? …

เริ่มต้นจากการศึกษาจากเวปต่างๆ เป็นเวลานาน เปลี่ยนเป็นไปหาที่เรียนรู้จากผู้รู้ แล้วกลับมาลองทดสอบกันในทีมที่ทำงาน จนเริ่มได้ Ubuntu Server ติดตั้ง Docker สำหรับทำการทดสอบ Application ภายในองค์กร เพื่อลดข้อจำกัดในเรื่องของ OS Version, PHP Version ไปจนถึงเรื่องของค่า Config ของแต่ละ Application ที่มีความต้องการที่แตกต่างกันไปในแต่ละ Application จนเป็นที่มาของ VM per Apps ที่ต้องสร้างขึ้นมาจนจำไม่ได้ว่ามีกี่ตัว ? มี Config ต่างกันอย่างไร ? และปัญหาในการบริหาร จัดการอีกจิปาถะ

ในวันนี้เราเริ่มมีการใช้งาน Container ซึ่งเป็นเทคโนโลยีที่มาตอบโจทย์ในเรื่องที่มีปัญหาของหลาย ๆ คน หลาย ๆ ที่ (อันนี้คิดเอง) แต่ก่อนที่เราจะมาคุยกันในเรื่องของ Container และ Docker นั้น คงต้องมาลองของกันก่อน และเพื่อเป็นการชิมลาง ก็ต้องทำกันจริง ๆ แบบตัวเป็น ๆ ง่าย ๆ ไม่เสียตังค์ ฟรีแถมใช้ได้ทุกที่ ทุกเวลา

แล้วเราจะเริ่มอย่างไรดี ? … อันนี้เป็นคำถามแรก ๆ ที่ทีมของเรา ก็ต้องไปหาเครื่องที่ต้องติดตั้งอะไร ต่าง ๆ นานา กว่าจะได้มาลอง ก็ว่ากันไป เอาเป็นว่าในตอนนี้หากเราอยากจะลองของ ในเวลาอันสั้นโดยไม่ต้องติดตั้ง นู้น นี้ นั้น ก็มาลองของฟรีกันก่อนดีกว่า

ทาง docker.com ได้มีหน้าเวปสำหรับให้เรามาลองของกันก่อน โดยจะต้องมีการลงทะเบียนเป็นสมาชิกของทาง docker.com เสียก่อน ซึ่งจริง ๆ แล้วทาง docker.com มีบริการให้เก็บ image file และข้อมูลอีกมากมาย ซึ่งจะยังไม่ขอกล่าวในบทความนี้

เอาเป็นว่าเราลงทะเบียนจนได้ user, password แล้ว ก็มาลองของกันเลยดีกว่าที่ url นี้เลย https://labs.play-with-docker.com/

กดไปที่ Login

เลือก docker หากทำการ login ด้วย user, password ที่ลงทะเบียนไว้แล้ว มาต่อกันเลย

กดที่ Start

เราจะได้หน้าจอของการเริ่มต้นใช้งาน Docker แบบไม่ต้องติดตั้งโปรแกรมใด ๆ ในทันที ไปต่อโดย กดไปที่ + ADD NEW INSTANCE เพื่อมาเริ่มกันเลย รอจนข้อความ + CREATING … หายไป

รออีกนิด… จะได้หน้า Console ของเครื่อง Linux สำหรับการทดสอบคำสั่ง docker แบบฟรี ๆ มาทันที โดยในหน้านี้จะเห็นว่า เราได้เครื่องมาใน Private IP Address = 192.168.0.48 (อันนี้แล้วแต่ทาง docker.com จะ generate ให้) มี Memory 4 GB และ CPU น่าจะ 1 core และหากต้องการจะ SSH ก็มีคำสั่งให้เราทำการ SSH ได้ (อันนี้เอาไว้ก่อน) ที่สำคัญ ก่อนเริ่มต้องทำกันต้องทำความเข้าใจกันก่อน คือ ระบบจะให้เวลาในการทดสอบแต่ละรอบ ๆ ละ 4 ชม. เท่านั้น ขอย้ำว่า 4 ชม. จริง ๆ หมายความว่าอะไร ?

ทาง docker.com จะให้เวลาในการทดสอบ สำหรับการสร้างเครื่องทดสอบ (INSTANCE) เป็นเวลา 4 ชม. ต่อการทดสอบในแต่ละรอบ ซึ่งหากถึงเวลาที่จะมีการนับถอยหลังให้เราได้เห็นแล้วที่มุมบนซ้าย ทาง docker.com จะทำการลบเครื่องทดสอบ (INSTANCE) ที่เราใช้งานอยู่ออกไป โดยไม่มีการจัดเก็บข้อมูลให้แต่อย่างใด ขอย้ำว่า ลบจริง ตามเวลาที่กำหนด แต่หากเราเลิกใช้งานก่อนเวลา ก็ว่ากันไป แต่หากถึง 4 ชม. ก็ต้องทำการเข้าใหม่อีกครั้งจะได้เวลาเริ่มต้นใหม่อีก 4 ชม. โดยใน 1 วันเราจะใช้ต่อเนื่องกี่รอบก็ได้ (ผมลองไป 2 รอบก็ไม่ไหวแล้วครับ)

เอาเป็นว่าเมื่อเราได้เครื่องทดสอบแล้วก็ มาลองของกันซักเล็กน้อย ด้วยคำสั่ง ตามนี้ได้เลย

· คำสั่งแสดงชื่อระบบของ server

uname -a จะได้ผลลัพธ์
Linux node1 4.4.0–170-generic #199-Ubuntu SMP Thu Nov 14 01:45:04 UTC 2019 x86_64 Linux
[node1] (local) [email protected] ~

· คำสั่งแสดง version ของ docker

docker -v จะได้ผลลัพธ์

Docker version 19.03.4, build 9013bf583a

[node1] (local) [email protected] ~

· มาทดสอบ run container แรกด้วย hello world ตามประเพณี ตามนี้

docker container run hello-world จะได้ผลลัพธ์

Unable to find image ‘hello-world:latest’ locally

latest: Pulling from library/hello-world

1b930d010525: Pull complete

Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the “hello-world” image from the Docker Hub.

(amd64)

3. The Docker daemon created a new container from that image which runs the

executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

https://hub.docker.com/

For more examples and ideas, visit:

https://docs.docker.com/get-started/

[node1] (local) [email protected] ~

$

เอาเป็นว่า ในตอนนี้เราก็ได้เครื่องสำหรับทดสอบคำสั่งและการทำงานของ docker กันแล้วนะครับ หากเลิกใช้งานก็ Close Session หรือปิดหน้าเพจนี้ไปก็ได้ แต่ข้อมูลต่างๆ ที่เราทำไว้ก็จะหายไปด้วยนะครับ … ในตอนต่อไปเราจะมาเริ่มทดสอบและทดลองคำสั่งและรายละเอียดอื่น ๆ กันอีกครั้ง …

แหล่งอ้างอิง :

· https://labs.play-with-docker.com/

· https://training.play-with-docker.com/