02.1 Setup Dockerhub Token
สร้าง Docker Hub token
อย่างแรกเราจะมาสร้าง Docker Hub token กัน เริ่มจากไปที่เว็บไซต์ของ Docker Hub และทำการ log in หรือ signup หากยังไม่เคยสมัคร
จากนั้นให้เรากดที่โปรไฟล์ของเรามุมขวาบน และกดเข้าไปที่ Account settings
จากนั้นกดไปที่ Personal access tokens ในเมนูด้านซ้าย และกดปุ่ม Generate new token ด้านขวาบน
ให้เราใส่ description ให้ token จะได้จำได้ว่าใช้สำหรับอะไร จากนั้นกำหนดวันหมดอายุ และ permission ผมจะใส่ description เป็น demo-token ไม่กำหนดวันหมดอายุ และให้ให้สิทธิ์ในการ Read, Write, Delete
หลังจากนั้นเราก็จะได้ access token ของเราเรียบร้อย จากนั้นให้เรา copy สิ่งนี้ไว้และเก็บไว้ให้ดี เพราะเราจะต้องนำสิ่งนี้ไปใส่ไว้ใน Github Actions Secrets and variables ในอนาคต
สร้าง Docker image
ก่อนที่เราจะ push docker image ขั้นไปได้ แน่นอนว่าเราต้องสร้างมันขึ้นมาก่อน โดยใช้คำสั่ง docker build เมื่อเรามี Dockerfile แล้ว
ให้เราเปิด terminal แล้วไปที่โฟลเดอร์โปรเจกต์ (ซึ่งมี Dockerfile อยู่) จากนั้นรันคำสั่งนี้:
docker build -t <docker-username>/<image-name> .-t→ ตั้งชื่อ image<docker-username>/<image-name>→ ใส่ Docker Hub username + ชื่อ image (เช่นcodesook/demo).→ หมายถึงDockerfileอยู่ในโฟลเดอร์ปัจจุบัน หรือเราสามารถเปลี่ยนเป็นใส่ path ของโฟล์เดอร์ที่Dockerfileนั้นอยู่ได้ หากเราไม่ได้อยู่ในโฟลเดอร์นั้น (เช่น./app)
โดยผมจะรันคำสั่ง docker build -t opomp1/demo . เพราะ docker hub username ของผมคือ opomp1 และผมต้องการตั้งชื่อ image นี้ว่า demo ต่อไปเราจะทำการ push image นี้ขึ้นไปเก็บไว้บน Docker Hub
Login Docker บนเครื่องเราด้วย Docker Hub
การที่จะ Login Docker บนเครื่องเรานั้นมีอยู่ 2 วิธี
วิธีแรกให้เราเปิด Terminal หรือ Command Prompt รันคำสั่งนี้โดยลงท้ายด้วย docker username ของเรา
docker login -u <docker-username>จากนั้นเราจะต้องพิมพ์ Password ของเราลงไป (หรือเราสามารถก็อป Docker Access Token ที่เราสร้างขึ้นก่อนหน้านี้มาใส่เพื่อใช้แทน Password ได้ด้วยก็ได้) หลังจากนั้นให้กด enter ระหว่างพิมพ์หรือวาง Token อาจจะ ไม่ขึ้นตัวอักษรใด ๆ บนหน้าจอ (อย่าตกใจไป ถือว่าเป็นปกติ เพื่อความปลอดภัย)
เท่านี้ก็ล็อกอินสำเร็จแล้ว
วิธีล็อกอินอีกวิธีคือให้เราพิมพ์
docker loginจากนั้นจะมีลิงค์ขึ้นมาพร้อทกับ confirmation code ให้เรากดลิงค์เผื่อล็อกอินผ่านเว็บ ก็อป confirmation code ไปวาง และกด confirm เท่านี้ก็ล็อกอินได้แล้ว
Upload Docker image ไปที่ Docker Hub
เมื่อเรา docker login สำเร็จแล้ว เราสามารถ push image ของเราขึ้น Docker Hub ได้เลยด้วยคำสั่งนี้
docker push <docker-username>/<image-name><docker-username>→ คือ username ของเราใน Docker Hub<image-name>→ ชื่อ image ที่เราตั้งไว้ตอน build (เช่นdemo)
โดยของผมจะรันเป็น
docker push opomp1/demo
ตอนนี้ถ้าหากเรากลับเข้าไปดูที่เว็บไซต์ Docker Hub ใน Repositories จะเห็นได้ว่าตอนนี้ image ที่เราได้สร้างและ push ไปนั้นขึ้นมาอยู่บน Docker Hub เรียบร้อยแล้ว