📢Docker Push

ส่ง 🖼️ Container Images ให้คนอื่นได้ใช้กัน

🤠 จาก บทความที่ 6 เราได้ลองสร้าง 🖼️ Container Images ตัวแรกของเราไปเรียบร้อยแล้ว ดังนั้นในบทความนี้เราก็ส่งมันไปให้ชาวโลกได้ลองเล่น 🖼️ Container Images ของเราดูบ้างกัลล์

แนะนำให้อ่าน บทความนี้เป็นส่วนหนึ่งของคอร์ส 🐳 Docker ที่จะสอนตั้งแต่เรื่องพื้นฐานยันระดับ master กันไปเลย ซึ่งเนื้อหาทั้งหมดจะทำให้เพื่อนๆเข้าใจและใช้งาน Docker โดยใช้ Kubernetes เป็น และสามารถสร้าง Cluster เพื่อนำไปใช้งานบน Cloud Providers ต่างๆได้ และทั้งหมดที่พูดมานั้นอ่านได้ฟรีเลย ดังนั้นหากสนใจก็สามารถกดเจ้าวาฬสีน้ำเงินเพื่อไปอ่านตั้งแต่เริ่มต้นได้ครัช 🤠

🚨 Prerequisites

หากใครยังไม่ได้สร้าง 🖼️ Container Images รบกวนไปสร้างให้เรียบร้อยก่อน ซึ่งสามารถทำตามได้จาก บทความที่ 6 กั๊ฟ แต่ถ้าอยากรู้แค่ขั้นตอนก็อ่านดูแต่ละ step ก็ได้เหมียนกัลล์

ก่อนที่จะไปต่อ ลองตรวจสอบ Image ที่อยู่ในเครื่องกันโหน่ย ด้วยคำสั่งลิสต์รายการ Images ด้านล่าง

docker images

จากรูปด้านก็จะเห็นว่า ในเครื่องของ ดช.แมวน้ำ มี 🖼️ Container Images อยู่ 2 ตัว โดยตัวที่ป๋มจะส่งไปให้ชาวโลกเห็นคือตัว demo01 ซึ่งใน บทความที่ 5 เราจะรู้ว่าพี่วาฬ 🐳 นั้นเก็บ Images ต่างๆทั่วโลกไว้ที่ 🗃️ Docker Registry หรือที่เราเรียกกันติดปากว่า 🌎 Docker Hub นั่นเอง

จากที่ร่ายมาทั้งหมดนั่นหมายความว่าเราจะต้องส่ง 🖼️ Container Image ของเราไปเก็บไว้ที่ 🌎 Docker Hub ดังนั้นเราก็ต้องมี Account ของเขาเสียก่อน

🔑 Docker Hub Sign-Up

ขั้นตอนสมัครสมาชิกค่อนข้างเรียบง่าย ดังนั้นเหล่าผองแมวน้ำรบกวนไปสมัครยืนยันอีเมล์กันเองได้จากลิงค์นี้เบย https://hub.docker.com แล้วเมื่อสมัครเสร็จก็กลับมา Login ต่อที่เครื่องเราได้ละ

🔐 Docker Login

หลังจากที่สมัครสมาชิกเสร็จ เราก็จะมา Login กันโดยเปิดตัว Command Prompt ขึ้นมาแล้วใช้คำสั่ง docker login ตามด้วย username และ password ที่เราตั้งไว้นั่นเอง (ตอนใส่รหัสผ่านมันจะไม่มีตัวอักษรขึ้นมาไม่ต้องตกใจนะ คอมไม่ได้เสีย 🤣)

docker login

Login Succeeded

ส่วนใครไม่ถนัดใช้ Command ก็สามารถคลิกขวาที่ไอคอนปลาวาฬ แล้วทำการ Login จากตรงนั้นก็ได้เช่นกันฮัฟ

เมื่อ Login เสร็จเรียบร้อยถัดไปเราก็จะเริ่มเอา 🖼️ Container Image ของเราส่งขึ้นไปเก็บไว้ที่ 🌎 Docker Hub กันต่อเลย

🐳 Docker Tag

ก่อนอื่นเราต้องเตรียม 🖼️ Container Image ต่ออีกนิดหน่อย โดยการติดสิ่งที่เรียกว่า tag เสียก่อน เพื่อเป็นการบอกว่าเรากำลังจะเอา 🖼️ Container Image ตัวไหนในเครื่อง ไปใส่ตัวไหนที่อยู่บน 🌎 Docker Hub

ซึ่งรายละเอียดเรื่อง tag มันจะคล้ายๆกับการทำเวอร์ชั่น เช่น ตัวนี้เป็นเวอร์ชั่น 1 นะ ตัวนี้เป็นเวอร์ชั่นทดสอบนะ บลาๆ ซึ่งก่อนที่เราจะไปต่อป๋มขอแสดงรายการ 🖼️ Container Image ที่อยู่ในเครื่องอีกครั้งก่อน จะได้ไม่ต้องเลื่อนขึ้นๆลงๆไปมาด้วยคำสั่ง docker images ก็จะเห็นตามรูปด้านล่าง

คราวนี้เราจะใช้คำสั่ง docker tag แล้วตามด้วย ชื่อ image ในเครื่องของเรา กับ ชื่อ image ใน docker แบบตัวอย่างด้านล่างนี้ (ชื่อ image ใน docker จะต้องนำหน้าด้วย username ของเราเสมอ)

docker tag demo01 saladpuk/demo01

จากคำสั่งด้านบนมันก็จะเป็นการทำให้ docker ในเครื่องเรารู้ละว่าเจ้า 🖼️ Container Image ที่ชื่อว่า demo01 ถ้ามันถูกเอาขึ้น 🌎 Docker Hub มันจะถูกเอาไปเก็บใน account ของ saladpuk แล้วเก็บไว้ในตัวที่ชื่อว่า demo01 ตามรูปด้านล่างนั่นเอง

🐳 Docker Push

หลังจากที่เราตั้ง tag เรียบร้อย ลองดูรายการ 🖼️ Container Images ในเครื่องเราอีกครั้งก็จะเห็นเจ้า tag ใหม่ที่พึ่งสร้างมาด้วยตามรูปด้านล่างเลย ซึ่งสังเกตได้ว่า Image Id มันจะเป็นเลขเดียวกัน

คราวนี้เราก็จะเอาตัว demo01 ไปฝากไว้กับ 🌎 Docker Hub ด้วยคำสั่ง docker push ตามคำสั่งด้านล่าง

docker push saladpuk/demo01

เมื่ออัพโหลดทุกอย่างเสร็จสิ้้นก็หมายความว่าตัว 🖼️ Container Image ของเรานั้นไปอยู่กับพี่วาฬเรียบร้อยแล้วนั่นเอง ซึ่งเพื่อนๆสามารถเข้าไปดูได้ที่ลิงค์นี้ https://hub.docker.com/r/saladpuk/demo01 เย่ๆ

ลิงค์นี้อาจจะไม่อยู่แล้วถ้าเลยเดือนเมษา 2021 เพราะป๋มน่าจะไม่ได้อัพเดทมันนะกั๊ฟ 😢

Public Accessibility อย่างที่เคยบอกไปว่าโดยปรกติตัว Container Image ของเราจะถูกเปิดให้ทั่วโลกเห็น (Public) นั่นหมายความว่าใครที่รู้ลิงค์นี้ หรือ search หา เขาก็จะสามารถเข้ามาลองเอา Container Image ของเราไปลองเล่นได้ ดังนั้นของที่เป็น sensitive data เช่น secrect key ต่างๆนาๆ ก็อย่าเอาไปเก็บไว้ในนั้นนะ

ส่วนสำหรับใครที่ไม่อยากจะให้คนอื่นแอบเข้ามาใช้ Container Image ของเราก็สามารถตั้งค่าให้เป็น private ได้จากที่เว็บ docker hub ตามรูปด้านล่างได้เลยฮัฟ

🐳 Docker Pull

สุดท้ายเมื่อเราเอาขึ้นไปละ ก็ลองเอามาเล่นซะหน่อยดิ๊ แต่ถ้าจะเอามาเล่นในเครื่องตัวเองก็คงจะได้ผลลัพท์เหมือนเดิม ดังนั้นในรอบนี้เราจะลองใช้คอมพิวเตอร์เครื่องอื่นมาเล่น Container Image ของเรากันดีก่า โดยการกดเข้าไปที่ลิงค์นี้เบย https://labs.play-with-docker.com ซึ่งเมื่อเข้ามาก็ Login > Start ให้เรียบร้อยครัช

หลังจาก Login เสร็จให้กดปุ่ม + ADD NEW INSTANCE เพื่อสร้างเครื่อง Linux จำลองขึ้นมาเลย (ใครไม่เคยใช้ Linux ก็จะได้ใช้ตอนนี้แหละ 🤣) โดยเราสามารถใช้งานได้ 4 ชมเต็มๆตามรูปด้านล่าง

จากตรงนี้เราก็จะลองเอา Container Image ของเรามาลองเล่นดู โดยที่หน้าจอดำๆของเครื่อง Linux ให้ใช้คำสั่งด้านล่างเพื่อ Run ตัว Container ของป๋มเล่นดู

docker run saladpuk/demo01

Counter: 1 Counter: 2 Counter: 3 ...

เราก็จะเห็นว่าตัว Container Image ของเราสามารถทำงานได้เหมือนกับที่อยู่ในเครื่องของเรา แม้ว่าเครื่องที่ ดช.แมวน้ำ ทำเป็นตัวอย่างนั้นจะใช้ Windows OS ก็ยังสามารถไปทำงานบน Linux OS ได้เป็นปรกตินั่นเองครัช

🎯 Summary

จากตรงนี้เราก็น่าจะพอเห็นแนวทางในการเอา 🖼️ Container Image ของเราไปแชร์ให้คนอื่นได้ลองใช้ หรือเอาไปลองทำงานบนเครื่องอื่นๆกันแล้วนะ ซึ่งการที่เราจะทำแบบนั้นได้ก็ต้องมีการสร้าง 🔐 Docker Account นิดหน่อย เพื่อที่จะเข้าไปใช้งาน 🌎 Docker Hub ได้นั่นเอง

ในบทความถัดไปเราจะมาลองดูกันว่า ถ้าเรามีโปรเจคที่ใช้ Docker หลายๆตัว เช่นมี Front-end, Back-end มีการต่อ Database ต่างๆนาๆ ซึ่งทั้งหมดนั่นเราจะเอาไปทำงานบน Docker ได้ยังไง ก็เชิญอ่านได้จากบทความถัดไปขอรับ (ใจเย็นๆนะโยม บทความถัดไปกำลังเขียนอยู่)

อ่านแล้วชอบป๋มก็ขอฝากแชร์ หรือกดติดตามเพื่อจะได้ไม่พลาดบทความอื่นๆจาก ดช.แมวน้ำ ได้จากลิงค์นี้เบยครัช Saladpuk Fanclub 😍

Last updated