Category Archive docker

เซ็ต SSL เร็วและฟรีใน 5 นาที

ตั้งแต่ google ใช้ SSL ออกมาเป็นเงื่อนไขในการทำ SEO ทำให้ทุกเว็บต้องมาเปิดใช้ SSL ไม่งั้นอันดับจะตกลง

สามารถขอ SSL ฟรีได้ง่ายๆ โดยใช้บริการของ http://Let’s Encrypt’s เปิดให้ใช้ฟรีหรือจะบริจาคเล็กน้อยตามศรัทธาก็ได้ การติดตั้งง่ายๆ โดย

  • Web Hosting who support Let’s Encrypt จะเป็น host ที่ support อยู่แล้วสามารถเปิดใช้ได้เลยอย่าง hostgator.com
  • ใช้ certbot instructions เลือกว่าใช้ Apache, Haproxy, Nginx, Plesk และ os ที่ใช้อย่าง Arch Linux, CentOS 6, Debian, Fedora, FreeBSD, Gentoo, macOS, OpenBSD 6.0+, openSUSE, RHEL, Ubuntu, Windows มันจะบอกวิธิติดตั้งมาให้ภายใน 5 นาทีเว็บก็ใช้ SSL ได้เลยทุก domain !!!

อย่าง server ผมก็ทำแค่ SSH เข้าไปที่ host แล้วพิมพ์ตาม

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --apache
sudo certbot certonly --apache

แล้วทดลองเรียกเว็บโดยใช้ SSL เท่านั้นเอง ง่ายจริงๆ

จัดการ 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 ตัวนั้นๆ