Push Image

Push Image

เป็นการนำ container image ขึ้นไปเก็บบน registry เพื่อที่จะสามารถนำ image ไปรันในที่อื่น ๆ ได้ง่ายขึ้น

Container Registry

Container registry คือ สถานที่ที่เก็บ container image ไว้ซึ่งจะมีอยู่ 2 แบบ ได้แก่

Public Registry

เป็น registry ที่เอาไว้ใช้งานส่วนตัวหรือกับทีมเล็ก ๆ ที่ต้องการใช้งาน registry แบบง่าย ๆ ซึ่ง image ที่เก็บใน public registry นั้น ทุกคนสามารถเข้าถึงได้ ในการจัดการการเข้าถึงอาจจะต้องใช้ private registry แทน

Private Registry

เป็น registry ที่เพิ่มเรื่องความปลอดภัยเข้ามา ไม่ว่าจะเป็นการจัดการ user หรือการจัดการ image ที่เก็บไว้ใน registry นั้น ๆ โดยทั่วไปจะใช้เป็น registry สำหรับเก็บ image ที่เป็น private หรือเป็น image ที่เก็บไว้เพื่อใช้งานในทีมเท่านั้น registry ประเภทนี้มีให้บริการทั้งแบบ cloud และ on-premise

AtlasX Container Registry Authentication

บน AtlasX เองก็มี registry สำหรับเก็บ container image อยู่ ในการใช้งานจะต้องมีการ authenticate ก่อน ซึ่งทำได้โดย

docker login atlasx-registry.cdg.co.th

จะมี prompt ให้กรอก username, password และ email

  • Username: 00xxx
  • Password: รหัสผ่านสำหรับล็อกอินเข้าระบบ Intranet ของ CDG

Push Image to AtlasX Container Registry

1. Prepare Image Tag

ในการ push image ไปยัง registry ของ AtlasX จะต้องมีการ tag image เพื่อระบุ registry ของ image ก่อน ซึ่งจะมีรูปแบบดังนี้ <REGISTRY>/<ORG_NAME OR PROJECT_NAME>/<IMAGE_NAME>:<TAG> เช่น atlasx-registry.cdg.co.th/atlasx/webapp:1.0.0

Note

เราแนะนำให้กำหนดชื่อ Organization ให้เป็นชื่อโครงการที่พัฒนาอยู่ เพื่อง่ายต่อการจัดเก็บและจัดการใน registry

เช่น ถ้าเราพัฒนาโครงการ MEA ให้กำหนดชื่อ tag image เป็น atlasx-registry.cdg.co.th/MEA/webapp:1.0.0

ในการตรวจสอบว่ามี image อะไรอยู่ในเครื่องเราบ้าง ให้ใช้คำสั่ง

docker images

จะแสดง image ทั้งหมดในเครื่อง

REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
atlasx-webapp         1.0.0     55849ef1629e   27 hours ago   63.8MB
atlasx-webservice     1.0.0     4eaa127731f4   28 hours ago   164MB

ในการ tag image เพิ่มจาก image ที่มีอยู่แล้ว ให้ใช้คำสั่ง

docker tag <IMAGE_ID> <REGISTRY>/<ORG_NAME OR PROJECT_NAME>/<IMAGE_NAME>:<TAG>

เช่น

docker tag 55849ef1629e atlasx-registry.cdg.co.th/atlasx/webapp:1.0.0

จากนั้นตรวจสอบ image อีกครั้ง ด้วยคำสั่ง docker images จะเห็นว่า image มี tag ใหม่เพิ่มขึ้นมาเรียบร้อยแล้ว

REPOSITORY                            TAG       IMAGE ID       CREATED        SIZE
atlasx-registry.cdg.co.th/atlasx/webapp   1.0.0     55849ef1629e   28 hours ago   63.8MB
atlasx-webapp                         1.0.0     55849ef1629e   28 hours ago   63.8MB
atlasx-webservice                     1.0.0     4eaa127731f4   28 hours ago   164MB

2. Push Image to Registry

ในการ push image ไปยัง registry ของ AtlasX ให้ใช้คำสั่ง

docker push <REGISTRY>/<ORG_NAME OR PROJECT_NAME>/<IMAGE_NAME>:<TAG>

เช่น

docker push atlasx-registry.cdg.co.th/atlasx/webapp:1.0.0

จะมีข้อความแสดงผลดังนี้ แสดงว่าการ push image เข้าไปยัง registry สำเร็จ

The push refers to repository [atlasx-registry.cdg.co.th/atlasx/webapp]
83950b155eec: Pushed
9fa83e6f16d8: Pushed
0618d1e529fa: Pushed
6e96dd581d79: Pushed
acf5e0b2cf08: Pushed
d51445d70778: Pushed
b96b16a53835: Pushed
994393dc58e7: Pushed
1.0.0: digest: sha256:13a44b7636ee98f04ccd8eddb4461c17f83d0df909a4000ee8945bf5973ee2c5 size: 1987