การทำ micro service ด้วย docker

จาก วิกิพีเดียว กองแผนงาน มช.
ไปยังการนำทาง ไปยังการค้นหา

chat gpt source

การสร้าง Docker image ที่ประกอบด้วย PHP, MySQL, phpMyAdmin และ FTP สามารถทำได้โดยการใช้ Docker Compose เพื่อจัดการบริการต่าง ๆ ให้อยู่ใน environment เดียวกัน นี่คือขั้นตอนในการทำเช่นนั้น:

1. สร้าง Directory สำหรับ Project

mkdir my_project

cd my_project

2. สร้างไฟล์ docker-compose.yml

สร้างไฟล์ docker-compose.yml ใน directory ของ project และใส่เนื้อหาดังนี้:

version: '3.8'

services:

 web:
   image: php:7.4-apache
   container_name: php_web
   volumes:
     - ./www:/var/www/html
   ports:
     - "8080:80"
   networks:
     - my_network
 db:
   image: mysql:5.7
   container_name: mysql_db
   volumes:
     - db_data:/var/lib/mysql
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: rootpassword
     MYSQL_DATABASE: mydatabase
     MYSQL_USER: myuser
     MYSQL_PASSWORD: mypassword
   ports:
     - "3306:3306"
   networks:
     - my_network
 phpmyadmin:
   image: phpmyadmin/phpmyadmin
   container_name: phpmyadmin
   environment:
     PMA_HOST: db
     MYSQL_ROOT_PASSWORD: rootpassword
   ports:
     - "8081:80"
   depends_on:
     - db
   networks:
     - my_network
 ftp:
   image: fauria/vsftpd
   container_name: ftp_server
   restart: always
   ports:
     - "20:20"
     - "21:21"
     - "21100-21110:21100-21110"
   environment:
     FTP_USER: "myuser"
     FTP_PASS: "mypassword"
   volumes:
     - ./ftp:/home/vsftpd
   networks:
     - my_network

volumes:

 db_data:

networks:

 my_network:

3. สร้าง Directory สำหรับ Web Files และ FTP

mkdir www

mkdir ftp

4. รัน Docker Compose

docker-compose up -d

คำสั่งนี้จะทำการดาวน์โหลด images ที่จำเป็น และสร้าง containers สำหรับ PHP, MySQL, phpMyAdmin และ FTP

การตรวจสอบ

เปิดเว็บเบราว์เซอร์และเข้าไปที่ http://localhost:8080 เพื่อดูหน้าเว็บของ PHP

เปิดเว็บเบราว์เซอร์และเข้าไปที่ http://localhost:8081 เพื่อเข้า phpMyAdmin

ใช้ FTP client เช่น FileZilla เชื่อมต่อไปที่ localhost บนพอร์ต 21 โดยใช้ username และ password ที่ตั้งค่าไว้ (myuser และ mypassword)

การจัดการข้อมูลและการเข้าถึง

Web files: อยู่ใน directory www ในโฟลเดอร์โปรเจ็คของคุณ และจะถูก mount ไปที่ /var/www/html ใน container PHP

Database: ข้อมูล MySQL ถูกเก็บไว้ใน volume db_data และสามารถจัดการได้ผ่าน phpMyAdmin

FTP: ไฟล์ต่าง ๆ จะถูกเก็บไว้ใน directory ftp และสามารถเข้าถึงได้ผ่าน FTP

การใช้ Docker Compose ทำให้การจัดการและการรันบริการต่าง ๆ ง่ายขึ้น และสามารถปรับแต่งได้ตามต้องการโดยการแก้ไขไฟล์ docker-compose.yml