การทำ 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