Skip to content

Publish Docker image ไปที่ DockerHub

บังเอิญว่าผมต้องติดตั้ง Node 6 ไว้บน CentOS 6.7 แต่ CentOS 6.7 ไม่มี C++11 ทำให้ติดตั้ง module ที่เป็น native บางตัวไม่ได้ ก็เลยต้องหา repo ของ devtoolset มาติดตั้ง gcc และ g++ version >= 5

ไหนๆ ก็ทำแล้วและต้องแชร์ให้ชาวบ้านเลย publish ขึ้น DockerHub ขอเขียนวิธี publish ไว้สักหน่อย

  • สมัคร DockerHub จากนั้น login เข้าไปแล้ว  Create Repository ตั้งชื่อของ image เพราะเราจะใช้ภายหลัง นอกนั้นก็ใส่ short description, description ไป
  • docker pull  <IMAGE NAME:TAG> ที่จะใช้เป็น base image ที่ต้องการลงมาก่อน อย่างกรณีของผมคือ CentOS
  • ถ้ายังไม่เคยรันก็สั่ง docker run -it --name "Process name" -d <IMAGE NAME:TAG> bash  ถ้าเคยรันแล้วก็สั่ง docker exec -it <PROCESS ID> bash  เข้าไปใน container ติดตั้งซอฟต์แวร์เพิ่มและปรับแต่งตามสะดวก
  • ออกมากจาก shell ของ container หรือเปิด terminal ใหม่
  • ลอง docker images  ดูจะเห็น IMAGE ID
  • docker commit -m "Your messages" -a "Your name" <IMAGE ID> <USERNAME>/<REPO NAME>:TAG   USERNAME คือที่เราสมัครไว้กับ DockerHub และ REPO NAME คือที่เราตั้งไว้ตอน Create Repository ถ้าสำเร็จจะได้ SHA ยาวๆ ออกมาก
  • login ด้วย docker login  ก็ใส่ username, password และ email ที่สมัครไว้กับ DockerHub เข้าไป
  • จากนั้น push ขึ้นไปบน repository ที่เราสร้างไว้ เช่นของผม docker push khasathan/centos67-node63:v1  tag จะใส่หรือไม่ก็ได้แล้วแต่การจัดการของเรา
  • หน้าจอจะแสดงสถานะการ push ใช้เวลามากน้อยแล้วแต่ขนาดไฟล์และความเร็วเน็ตครับ

อ้างอิง: https://docs.docker.com/engine/tutorials/dockerimages

Be First to Comment

Leave a Reply

Your email address will not be published.