in How-to

10 เทคนิคใช้งาน Docker

Brian Morearty บรรยายเกียวกับ Docker ที่สำนักงานใหญ่ของ Twitter ใน slide มีเทคนิคการใช้งาน Docker ที่น่าสนใจอยู่หลายเรื่อง และเป็นประโยชน์มาก ก็เลยถือโอกาสสรุป 10 เทคนิคที่น่าสนใจมาให้ได้ทดลองใช้กัน
เทคนิคที่ 1 เอาค่า Container ID ตอนสั่ง run container
ID=$(docker run ubuntu echo hello world)
ค่าเราสามารถเอาค่า ID ที่ได้เอาไปทำอย่างอื่นต่อได้
เทคนิคที่ 2 ติดตั้งโปรแกรมเพิ่มเติมใน container โดยไม่พึ่ง Dockerfile
docker run -it ubuntu bash
โปรแกรมจะพาเราเข้าไปที่ bash shell ของ container ที่เราสั่งใช้งาน จากนั้นเราจะทำอะไรกับ container นั้นก็ได้ จากนั้นสั่ง commit ได้เลย
docker commit CONTAINER-ID NEW-NAME

เทคนิคที่ 3 ใช้ Docker ไม่ง้อ sudo
sudo groupadd docker
sudo gpasswd -a myusername docker
sudo service docker restart
เท่านี้คุณก็สามารถใช้ user ของคุณใช้คำสั่ง docker ได้
เทคนิคที่ 4 เอา Container ที่ไม่ได้ใช้ออกไป
docker rm $(docker ps -a -q)
เทคนิคที่ 5 ใช้ jq ดูรายละเอียด Container เช่น ดู IP Address ของ Container
docker inspect CONTAINER-ID | jq -r '.[0].NetworkSettings.IPAddress'
เทคนิคที่ 6 ดู env ใน Container
docker run ubuntu env
เทคนิคที่ 7 RUN vs CMD
RUN จะทำงานเมื่อสั่ง build image ส่วนคำสั่ง CMD จะทำงานเมื่อสั่ง docker run
เทคนิคที่ 8 CMD vs ENTRYPOINT
CMD สามารถส่งค่า argument เมื่อสั่ง run ได้ แต่ ENTRYPOINT ทำไม่ได้
เทคนิคที่ 9 Container มี IP Address หรือเปล่า
มีเพราะ container ทำงานผ่าน internal IP address ลองใช้คำสั่ง
docker run ubuntu ip -4 -o addr show eth0
จะรู้ว่า Container ก็มี IP Address เหมือนกัน
เทคนิคที่ 10 ใช้งานผ่าน Unix Socket ได้
Docker ทำงานเป็นทั้งคำสั่งใช้งานใน shell และเป็นทั้ง deamon ด้วยซึ่งสามารถกำหนดให้ทำงานผ่าน unix socket หรือ tcp socket ได้
docker -H tcp://192.168.2.182:2375 pull ubuntu
เทคนิคทั้งหมดสามารถเอาไปลองใช้กันดูได้