Tag Archive docker

จัดการ docker ง่ายๆ ด้วย portainer

เมื่อ docker มี container และ image มากขึ้นการที่ใช้ command จัดการเพิ่ม ลบ stop start โดยเฉพาะช่วงที่กำลังหัดเขียน dockerfile หรือ docker-compose การที่ใช้ตัวจัดการด้วย gui จะช่วยให้ทำได้เร็วขึ้น ตัว docker management อย่างเป็นทางการของ docker คือ kitematic แต่มีตัวอื่นที่ใช้ง่ายกว่า คือ portainer

เริ่มจากลองเข้าไปดูการใช้งานได้จากตัว demo demo.portainer.io username คือ admin และ password คือ tryportainer หรือชมจากภาพ DETAILED OVERVIEW ก่อนก็ได้ ถ้าเคยใช้ kitematic มาก่อนจะเห็นว่ามันน่าใช้กว่ามาก

การติดตั้งทำได้ง่ายๆ เพียง

  1. ใช้ command [code language=”text” title=”ติดตั้ง portainer ตัวจัดการ docker”]docker run –name portainer -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer[/code] รอให้โหลด image เสร็จ
  2. เปิดเว็บ http://localhost:9000 กรอกข้อมูลผู้ใช้ รหัสผ่าน และเลือกการ connect แบบ local

แค่นี้ก็สามารถใช้ portainer จัดการกับ image และ container ได้แล้ว

ในครั้งต่อไปที่ต้องการเรียกใช้ให้ใช้ command [code language=”text” title=”start portainer”]docker start portainer[/code] และเรียกใช้จาก http://localhost:9000 เหมือนเดิม

docker: image tag version

การสร้าง docker container วิธีต่างๆ จะเห็นคำว่า tag อยู่ในทุกคำสั่ง เช่น [code language=”text” title=”docker pull image”]docker pull [OPTIONS] NAME[:TAG|@DIGEST][/code] ที่เวลาใช้จะพิมย์ เป็น [code language=”text” title=”docker pull php fpm verion 7.1.10 image”]docker pull php:7.1.10-fpm[/code] ตอนแรกผมเข้าใจว่ามันคือ keyword ไว้อธิบายว่า container ตัวนี้มันคืออะไร ทำมาจากอะไร แต่จริงๆแล้ว มันไม่ใช่ keyword ที่ไว้ค้นหา แต่ก็ไม่ได้ผิดไปนัก

การอ้างถึง image จะประกอบด้วย 2 ส่วนคือ image:version

image
image คือต้นแบบโปรแกรมที่เราใช้ เหมือนไฟล์ .iso ที่เป็นไฟล์ที่จำลองแผ่น cd / dvd ตอนเราติดตั้งโปรแกรม เราไม่ได้ใช้ไฟล์ .iso ทำงานต่างๆให้เรา image ก็เช่นกันไว้ติดตั้ง apache, mysql แต่ไม่ได้ทำงานแทนโปรแกรมพวกนั้นเป็นแค่ ต้นฉบับไว้ให้จำลองเป็น container
tag หรือ version
เป็นตัวบอกว่า ให้ติดตั้ง image version ที่เท่าไหร่ เช่น php 5.6.31 ถ้าไม่ระบุเวอร์ชั่น docker จะเลือกตัวล่าสุดหรือ :latest ให้โดยอัตโนมัติ

เราสามารถค้นหา image ได้จาก Docker Hub

บาง image จะมีหลาย repository ให้เลือกใช้ (แนวคิดเดียวกับ distro ของ linux เลย)

  • ตัวที่เป็นทางการหรือ official repository หรือ library จะมี link แบบ https://hub.docker.com/_/php/ ใช้โดยเขียน php หรือ php: ตามด้วย tag (version) ได้เลย
  • ส่วนตัวอื่นจะมี ชื่อผู้ผลิตนำหน้า เช่น https://hub.docker.com/r/appsvc/php/ เวลาใช้ก็ต้องอ้าง appsvc/php: ตามด้วย tag (version)

บาง image ยังมีหลาย version ให้เลือกอีก เช่น 7.1.10-alpine, 7.1.10-apache, 7.1.10-cli, 7.1.10-fpm ให้เลือกอีก

ถ้าเราไม่ใส่ :tag จะหมายถึง tag :latest หรือ ใหม่ที่สุดเท่าที่จะมีใน image ตัวนั้นๆ