> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/basic/docker-1/tools.md).

# 🛠️ Docker Tools

อยากใช้เจ้าวาฬน้ำเงินแต่ขี้เกียจจำคำสั่งทำไงดี 🤔

🤠 จาก [**บทความที่ 3**](https://www.saladpuk.com/basic/docker-1/exercise01) เราได้ลองใช้เจ้าวาฬน้ำเงิน 🐳 ครั้งแรกแล้วก็จะพบว่า **มีแต่ Command Line เต็มจอไปหมด** ซึ่งบางคนก็ขี้เกียจที่จะไปนั่งจำคำสั่งพวกนั้นทั้งหมด ดังนั้นในบทความนี้**เรามาลองเล่น Docker แบบไม่ใช้ CLI กันดีก่าาาา**

{% hint style="success" %}
**แนะนำให้อ่าน**\
บทความนี้เป็นส่วนหนึ่งของคอร์ส [🐳 **Docker**](https://www.saladpuk.com/basic/docker-1) ที่จะสอนตั้งแต่เรื่องพื้นฐานยันระดับ master กันไปเลย ซึ่งเนื้อหาทั้งหมดจะทำให้เพื่อนๆเข้าใจและใช้งาน **Docker** โดยใช้ **Kubernetes** เป็น และสามารถสร้าง **Cluster** เพื่อนำไปใช้งานบน **Cloud Providers** ต่างๆได้ และทั้งหมดที่พูดมานั้นอ่านได้ฟรีเลย ดังนั้นหากสนใจก็สามารถกดเจ้าวาฬสีน้ำเงินเพื่อไปอ่านตั้งแต่เริ่มต้นได้ครัช 🤠
{% endhint %}

## 🐳 Docker Desktop

### 🔥 Dashboard

ตอนที่เราติดตั้ง Docker นั้นเราจะได้โปรแกรม **`🐳 Docker Desktop`** มาด้วย ซึ่งเราสามารถใช้งานมันได้ง่ายๆโดยการดับเบิลคลิกตัว Icon พี่วาฬที่อยู่มุมจอของเรา หรือจะคลิกขวาเพื่อเปิด **Dashboard** ก็ได้เช่นกัลลล์

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYQEx-8SHlqASxVDke%2Fimage.png?alt=media\&token=52f71009-d736-4fd8-b363-c085b8127197)

ตัว 🐳 **Docker Desktop** เมื่อถูกเปิดขึ้นมา เราจะเห็นแถบอยู่ 2 อันคือ **`📦 Containers`** กับ **`🖼️ Images`** ตามรูปด้านล่าง (เครื่องป๋มใช้ Dark theme มันเลยเป็นสีดำ)

![📦 Containers](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYSBVwU9QQHVoolbe5%2Fimage.png?alt=media\&token=876c0aca-7a9b-4ed1-8092-803825200b41)

![🖼️ Images](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYTJkGiEsyLaJW6kBY%2Fimage.png?alt=media\&token=d85f7a85-60bb-4711-bab1-cd7d1374593a)

### 🔥 Run an image

ในบทความนี้เครื่องผมไม่มี Containers หรือ Images อยู่เลย ดังนั้นทั้ง 2 แถบเลยว่างโล่งโจ้ง ดังนั้นเราก็จะลองเอา Image ตัวฝึกหัดมาลองใช้งานอีกครั้ง โดยการใช้คำสั่งด้านล่างใน `Command Prompt` (ไหนบอกไม่ใช้ CLI 🤪)

```bash
docker pull docker/getting-started
```

เมื่อเสร็จแล้วลองมาดูที่แถบ **`🖼️ Images`** ใหม่อีกครั้งก็จะเห็น Image ที่เราพึ่งดาวโหลดลงมา ตามรูปด้านล่าง

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZVdCi0TyPNJ5tGEiB%2F-MKZWqeciuZmpJLAQZOX%2Fimage.png?alt=media\&token=e17f5688-dcb4-4cc5-a324-c049ae1753da)

คราวนี้ถ้าเราอยากเอา **`🖼️ Container Image`** ตัวนั้นไปสร้างเป็น **`📦 Container`** เราก็แค่เลื่อนเมาส์ไปที่ image ตัวนั้นๆ แล้วเลือกคำสั่ง **`RUN`** ตามรูปด้านล่าง

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYW5a7WAMvv6cU3kbj%2Fimage.png?alt=media\&token=732566e9-76f3-4a4f-84a2-4c1fa6e9eb49)

หากเราต้องการ **Map PORT** หรือทำ **Volume** ก็ให้กดที่ **`Optional Settings`** ได้เบย (Volume จะมีสอนในบทความถัดๆไป)

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYWHcT5gRdkqiuuquG%2Fimage.png?alt=media\&token=82c4819f-0b97-4647-8019-4f9b615309e3)

ที่รายการ setting ป๋มต้องการแค่จะ Map PORT 80 เหมือนใน [**บทความที่ 3**](https://www.saladpuk.com/basic/docker-1/exercise01) เท่านั้น ดังนั้นก็ใส่ค่าตามรูปด้านล่างแล้วกด **`RUN`**&#xE42;ลด

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYLL77sKfArP_WBPI9%2F-MKYXSlhvlEYPF0vtHdl%2Fimage.png?alt=media\&token=38c5fb56-6ef5-411d-96cb-7ac57d9006ab)

เพียงแค่นี้เจ้า **`🐳 Docker`** ก็จะไปสร้าง Container ตัวใหม่ให้เรา แถมยังพาเรามาที่แถบ **`📦 Containers`** อีกด้วย ซึ่งเราก็จะเห็นตัว Container ตัวนั้นพร้อมสถานะของมันตามรูปด้านล่าง&#x20;

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZVdCi0TyPNJ5tGEiB%2F-MKZXUDsoBHFlkXF0sZe%2Fimage.png?alt=media\&token=0371d5ba-95f5-453d-b899-bf770e3a9213)

### 🔥 Containers

รายการ **`📦 Containers`** เราสามารถเลือกตัวที่เราสนใจเพื่อทำรายการต่างๆกับมันได้ เช่น อยากเข้าไปดูเว็บตัวนั้น ก็สามารถกดที่ปุ่ม **`Open in browser`** เขาก็จะเปิดตัวเว็บที่ container ตัวนั้นๆทำงานอยู่ขั้นมาให้เรา ตามรูป

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKYYdnfc4gQDheatQBp%2F-MKYZ109TI2BeaclDoOz%2Fimage.png?alt=media\&token=108a6b89-d6f6-41ed-9921-ed70f67f5819)

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKRInBdQM161M27BQZF%2F-MKRUL2RMc7BU_4wFRq_%2Fimage.png?alt=media\&token=0aa3b1fb-f08c-4bd1-b320-139e02674fac)

ส่วนคำสั่งอื่นๆก็น่าจะตรงตัว ดังนั้นเพื่อนๆลองเล่นได้เต็มที่เลย (ถ้า container พังก็กดลบทิ้งแล้วสร้างใหม่ 🤣)

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-ML11rJtbz7nN4F1NvFu%2F-ML11uy6Moxb4D_mlNON%2Fimage.png?alt=media\&token=c8202878-d655-46c4-8754-5cc662139bab)

{% hint style="info" %}
คำสั่ง **CLI** จะเป็นการเข้าไปข้างใน Container แล้วทำงานกับมันด้วย CLI (เหมือน remote เข้าเครื่อง ซึ่งเดี๋ยวจะอธิบายอีกทีในบทความถัดๆไป)
{% endhint %}

### 🔥 Images

กลับมาที่แถบ **`🖼️ Images`** เมื่อเลื่อนเมาส์ไปใกล้ๆเราก็จะเห็นปุ่ม `...` แล้วเมื่อคลิกมันก็จะแสดงรายการคำสั่งขึ้นมาให้ใช้ ดังนั้นถ้าเราอยากจะจัดการอะไรกับมันก็มาที่ตรงนี้แหละ ส่วนคำสั่งแต่ละตัวเดี๋ยวไปดูรายละเอียดในบทความถัดๆไปละกันนะ แต่ที่แน่ๆตอนนี้เรารู้จักคำสั่ง Remove แน่นอน 🤣

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZdPToNCxy_rthyJ-_%2Fimage.png?alt=media\&token=731442a3-f0fb-487d-963b-52e160e27cb9)

## 🛠️ Visual Studio Code

ตัวโปรแกรม [**VS Code**](https://code.visualstudio.com/) ที่ช่วยให้ขาเดฟเขียนงานกันก็มี Extensions ช่วยให้เราทำงานกับ **`🐳 Docker`** ด้วยนะ ส่วนใครที่ยังไม่รู้จักหรือยังไม่ได้ลงก็สามารถกดดาวโหลดได้จากลิงค์นี้เลยครัช [https://code.visualstudio.com](https://code.visualstudio.com/)

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZhTZI06yeEM5JZatt%2Fimage.png?alt=media\&token=2e95ef44-3c96-4d17-9d42-34d3d6eca27c)

เมื่อเปิดโปรแกรมขึ้นมาแล้วเลือก `Extension` ที่อยู่ด้านซ้ายมือ แล้วทำการค้นหาด้วยคำว่า `docker` ซึ่งน่าจะได้ผลลัพท์มาเป็นตัวแรก (ที่มันติดดาว) ให้คลิกมันไป 1 จึ๊ก แล้วจะเห็นปุ่ม Install ก็กดติดตั้งไปอย่ารอช้า

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZi6UQKrlixR6tWURL%2Fimage.png?alt=media\&token=816b7867-507e-4295-aecc-fd0356951637)

หลังจากติดตั้งเสร็จเราก็จะเห็น Icon ปลาวาฬโผล่มาที่ด้านซ้ายมือ ให้ลองจิ้มอย่างแผ่วเบาไป 1 จึ๊ก แล้วเราก็จะเห็นรายการ  **`📦 Containers`** กับ **`🖼️ Images`** ที่เรามีอยู่ในเครื่อง ตามรูปด้านล่าง

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZjY6L2BDJ3BMXdiNa%2Fimage.png?alt=media\&token=f8867c55-5c02-4908-8461-1bc9c13a6119)

### 🔥 Run an image

ในบทความนี้เครื่องผมไม่มี Containers หรือ Images อยู่เลย ดังนั้นทั้ง 2 แถบเลยว่างโล่งโจ้ง ดังนั้นเราก็จะลองเอา Image ตัวฝึกหัดมาลองใช้งานอีกครั้ง โดยการใช้คำสั่งด้านล่างใน `Command Prompt` (ไหนบอกไม่ใช้ CLI 🤪)

```bash
docker pull docker/getting-started
```

เมื่อเสร็จแล้วลองมาดูที่แถบ **`🖼️ Images`** ใหม่อีกครั้งก็จะเห็น Image ที่เราพึ่งดาวโหลดลงมา ตามรูปด้านล่าง

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZk52U3dHGBgNMyLH4%2Fimage.png?alt=media\&token=26ba13f9-513f-4a8d-9217-d89c8d5238d9)

คราวนี้ถ้าเราอยากเอา **`🖼️ Container Image`** ตัวนั้นไปสร้างเป็น **`📦 Container`** เราก็แค่คลิกขวาแล้วเลือก `RUN` เท่านั้นเอง ซึ่งพอรอสักครู่เราก็จะเห็น Container ของเราโผล่มาละ ตามรูปด้านล่าง

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZlNHpdVGKlwdRpkRi%2Fimage.png?alt=media\&token=bc0cf7ec-b7cc-4ffc-8a4e-be9e3c37746b)

### 🔥 Containers

รายการ **`📦 Containers`** เราสามารถเลือกตัวที่เราสนใจเพื่อทำรายการต่างๆกับมันได้ เช่น อยาเข้าไปดูเว็บตัวนั้น ก็ให้คลิกขวาแล้วเลือกคำสั่ง **`Open in Browser`** เขาก็จะเปิดตัวเว็บที่ container ตัวนั้นๆทำงานอยู่ขั้นมาให้เรา ตามรูป

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKZcENSLjTb7ndp1E-4%2F-MKZmItXk5rpKua5TfV2%2Fimage.png?alt=media\&token=991fe0a3-f893-4a29-9668-0f955bc66a99)

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKRInBdQM161M27BQZF%2F-MKRUL2RMc7BU_4wFRq_%2Fimage.png?alt=media\&token=0aa3b1fb-f08c-4bd1-b320-139e02674fac)

## 🎯 Summary

จากทั้งหมดที่พาเล่นไปก็น่าจะเห็นแล้วนะว่าการเล่นกับพี่วาฬ **`🐳 Docker`** นั้นไม่ยากอย่างที่คิดเลยชิมิ แถมจริงๆเครื่องมือที่จะช่วยให้เราทำงานกับพี่วาฬก็ไม่ได้มีแค่นี้นะลองไปหาดูก็จะพบอีกเพียบเบย

{% hint style="warning" %}
**คำเตือน**\
เครื่องมือมันช่วยให้เราทำงานได้โดยไม่ต้องไปนั่งจำ Commands ก็จริง แต่ถ้าเราจะใช้ Docker จริงๆจังๆที่เป็น Production grade แล้วล่ะก็ **สิ่งที่ดีที่สุดคือการใช้ Command Line ต่างหาก** เพราะตัว Commands จริงๆมันมี options & parameters ให้เยอะยั๊วเยี๊ยเต็มไปหมด จนตัว Tools ไม่สามารถเอามาแสดงได้หมดด้วยซ้ำ ไม่เชื่อลองใช้คำสั่ง **`docker --help`** ดูจิ แล้วลองใช้ **`--help`** กับคำสั่งแต่ละคำสั่งลงไปอีก ก็จะเจอ options ขึ้นมาเต็มไปหมดเบย 🤣
{% endhint %}

หลังจากที่ได้เห็นตัวอย่างการใช้งาน Docker ขั้นพื้นฐานละ เดี๋ยวในบทความถัดไปเราจะลงรายละเอียดเรื่อง **`🗃️ Docker Registry`** กันต่อ เพื่อเตรียมตัวสร้าง **`🖼️ Container Image`** เป็นของตัวเอง จะได้เอาไว้ใช้พัฒนาต่อกับคนในทีมนั่นเองกั๊ฟ

{% content-ref url="/pages/-MKb\_tSky35tYdpt1Jga" %}
[🗃️ Docker Registry](/basic/docker-1/registry.md)
{% endcontent-ref %}

{% hint style="success" %}
อ่านแล้วชอบป๋มก็ขอฝากแชร์ หรือกดติดตามเพื่อจะได้ไม่พลาดบทความอื่นๆจาก **ดช.แมวน้ำ** ได้จากลิงค์นี้เบยครัช [**Saladpuk Fanclub**](https://www.facebook.com/mr.saladpuk/?modal=admin_todo_tour) **😍**
{% endhint %}

![ช่องทางสนับสนุนค่าอาหารแมวน้ำกั๊ฟ 😘](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-MKNgXXMPEbIB6sQztG2%2F-MKNmp9HEqzREDsXrZ0H%2Fpromptpay.png?alt=media\&token=0829926b-41a7-48d1-a515-4dea42ac4c2a)
