หลังจากที่ Docker 1.13.0 ถูกปล่อยออกมา
มี feature ใหม่เพิ่มเข้ามามากมาย
มีการปรับปรุงมากมาย
มีการแก้ไข bug มากมาย
มีสิ่งที่ deprecated มากมาย
ดูเพิ่มเติมได้ที่ Release Note :: 1.13.0

แต่ feature ที่ส่วนตัวชอบมีดังนี้

เรื่องที่ 1 Prune command

ก่อนหน้าที่ถ้าต้องการ clear สิ่งต่าง ๆ ที่เราไม่ต้องการ
หรือไม่ถูกใช้นาน ๆ ทั้ง image และ container
ต้องใช้คำสั่งที่ยึดยาว เช่น

$docker rm -f $(docker ps -aq)
$docker rmi -f $(docker images -q
$docker ps -a | grep 'Exited' | awk '{print $1}' | xargs docker rm

แต่ใน Docker 1.13.0 นี่ง่ายกว่ามากผ่าน Prune command ดังนี้

$docker system prune

ผลการทำงานเป็นดังรูป

จากนั้นเอาไปใส่ใน scheduler ให้ทำงานตลอดเลย

เรื่องที่ 2 CLI ของ Docker ที่เข้าใจง่ายขึ้น

ถ้าต้องการจัดการ container ก็ใช้งาน $docker container
ถ้าต้องการจัดการ system ก็ใช้งานผ่าน $docker system
ถ้าต้องการจัดการ image ก็ใช้งานผ่าน $docker image
ถ้าต้องการจัดการ volume ใช้งานผ่าน $docker volume

เรื่องที่ 3 เพิ่ม output ของ metric api ของ container, image และ daemon operation ในรูปแบบของ Prometheus

ทำให้สามารถส่งข้อมูลไปยัง Prometheus ง่ายเลย
ดังนั้นเรื่องของ monitoring จึงง่ายและมีทางเลือกมากยิ่งขึ้น
แต่ยังเป็น experiment นะครับ อาจจะเอา feature ออกไปก็ได้

สำหรับ Docker for Mac สามารถเปิด Metric api ได้ดังนี้
แก้ไขไฟล์ daemon.json ดังนี้

จากนั้นทำการ Apply และ Restart ซะ
มาลองสร้าง container และดึงข้อมูลผ่าน Metric API กันดังนี้

$docker run --rm --network=host alpine sh -c 'apk add --no-cache -q curl && curl localhost:1337/metrics'

ผลที่ได้เป็นดังนี้

Reference Websites
https://blog.docker.com/2017/01/whats-new-in-docker-1-13/
https://blog.codeship.com/whats-new-docker-1-13/
https://codefresh.io/blog/everyday-hacks-docker/

Tags: