Certified containers กับ Docker containers ต่างกันอย่างไร?

ไม่ขอเกริ่นเกี่ยวกับ Docker นะครับ สำหรับการ Deploy แอปพลิเคชันสมัยใหม่แบบ Docker-based application (แบบเดิม monolithic applications) ด้วย Docker images บนตัว Docker รันไทม์หลัก ๆ แล้ว images มาจาก 3 แหล่งครับ

  1. คลัง Docker Hub registry
  2. Public registry (community images/Docker Native)
  3. และ Private registry image (Custom Docker Containers)

โดยที่คลังเก็บ images บน Docker Hub registry จะแบ่งประเภทของ images ไว้ 2 ประเภทคือ

  1. Official Images

    เป็น Official Images ดูแลโดย Docker เป็น open-source images ที่ drop-in เข้ามาให้จาก Docker อยู่แล้ว คล้ายกับ repositories ดิสโทร Linux ของแต่ละค่ายนั้นแหละครับ
    เช่น NGINX, MongoDB, Redis, MySQL, MariaDB เป็นต้น
  2. และ Verified Publisher 

    จะเป็นพวก images จากเจ้าของผลิตภัฑณ์ซอฟต์แวร์ดูแลเอง
    เป็น private repositories ที่  certified infrastructure ให้กับแพลตฟอร์ม
    เช่น SAP HANA โดย SAP SE.

Certified containers กับ Docker containers ต่างกันอย่างไร?

Certified containersDocker containers
SSH access levelสิทธิ์ผู้ใช้สิทธิ์ root
Server security patchingPasS เช่น Jelastic*Customer
Automatic config. tuning และ optimizationyesno
Advanced orchestration integration
(deployment, SSL installation อื่นๆ)
yes
Technical supportyes
Server software qualityproduction-grade

* Architecture ของ Jelastic ค่อนข้างแตกต่างกับ GCP หรือ AWS ที่เป็นตัวติดต่อกับคอนเทนเนอร์รันไทม์

Custom Docker Containers

ที่นี้หากเราจับ containers โดยใช้ images จาก Certified containers หรือ Community มามัดรวมกันเราจะเรียก Docker Composeโดยลักษณะนี้จะอยู่บน Marketplace ที่เจ้าของแพลฟอร์ม ทำ preconfigured ปรับจูน Stack มาให้เสร็จสรรพแล้วครับ

Docker containers

หรือให้เข้าใจได้ง่าย ๆ ก็คือ Docker Compose มันเอาไว้รัน multi-container applications บน Docker นั้นเองครับ (สร้าง containers หลาย ๆ อันขึ้นมาเป็น Stack เช่น PHP Application Stack เป็นต้น)

Docker Compose to Run Multiple Instances of a Service

โดย Stack ที่ว่านี้อาจประกอบไปด้วย images ของซอฟต์แวร์ต่าง ๆ ดังนี้

  • nginx
  • mariadb
  • memcached
  • phpmyadmin
  • และ php-fpm

เมื่อเขียนไฟล์เสร็จสรรพแล้วก็สั่ง build service ด้วย command “docker-compose up -d”เพื่อสร้าง containers

ซึ่งใน Compose file ของ WordPress Cluster Stack จะมีการ deploy images ต่าง ๆ ประกอบร่างขึ้นเป็น Environment พร้อมใช้

ตัวอย่าง ไฟล์ docker-compose.yml

services:
        db:
            image: mariadb:latest
            container_name: phppos_mariadb
            restart: always
            volumes:
                - ./mariadb/initdb/:/docker-entrypoint-initdb.d
                - ./mariadb/data/:/var/lib/mysql
            environment:
                - MYSQL_ROOT_PASSWORD=root456
                - MYSQL_DATABASE=phpapp
                - MYSQL_USER=phpapp
                - MYSQL_PASSWORD=phpapp456

        php:
            build: ./php 
            container_name: phppos_php-fpm
            restart: always
            volumes:
                - ./www/:/var/www/html
            expose:

                - "9000"
        nginx:
            image: nginx:stable-alpine
            container_name: phppos_nginx
            restart: always
            volumes:
              - ./nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf:ro
              - ./nginx/conf.d:/etc/nginx/conf.d:ro
              - ./logs/nginx:/var/log/nginx
            volumes_from:
                - php
            ports:                  
                - "8080:80"

        memcache:
            image: memcached
            container_name: phppos_memcached
            ports:
                - "11211:11211"

        pma:
           image: phpmyadmin/phpmyadmin
           container_name: phppos_phpmyadmin
           restart: always
           ports:
                - "8000:80"

เช่นเดียวกันหากคุณต้องการ Deploy แอปพลิเคชันบน Cloud ก็ทำวิธีเดียวกันนี้ครับ
ปกติผู้ให้บริการคลาว์ดพร้อมเสริฟให้คุณบน Marketplace อยู่แล้ว ส่วนจะ Deploy บน Orchestration เช่น Kubernetes (K8s), Jelastic Orckestrator หรือ System containers ไหนก็แล้วแต่เงินในกระเป๋าเลย 55++)

Jelastic Orckestrator

ไม่ต้องควักตังค์มาก มีทอน เช่น LXC/LXD, OpenVZ/Virtuozzo, BSD jails, Linux vServer, อื่นๆ
สำหรับแพลตฟอร์ม Jelastic PaaS อาวุธปล่อยนำวิถีใช้ Virtuozzo ครับ.

Application containers จัดการโดย Kubernetes orchestration
Kubernetes orchestration on Jelastic PaaS
Scroll to top