การทำ micro service ด้วย docker
การสร้าง 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