Cài đặt WordPress / PhpMyAdmin với Docker Compose trên Ubuntu 16.04
Tại sao sử dụng Docker để chạy Wordpress? Hãy cùng mình tìm hiểu những lợi ích của Docker mang lại nhé
Containers cho WordPress và MySQL thì luôn có sẵn trên Docker Hub. Một Docker image là một bản snapshot tĩnh của một container mà được sử dụng để tạo mới một container instances - thôi rối quá bạn có thể bỏ qua đoạn này.
Docker Hub là một official repository (kho lưu trữ chính thức được công nhận) ?, nơi mà mọi cá nhân hay tổ chức đều có thể upload Docker images lên đó chia sẻ cho cộng đồng sử dụng chung, nếu bạn từng dùng Github bạn sẽ hiểu repository là gì.
Máy của bạn hoặc server linux đã cài đặt Docker và Docker Compose, nếu vẫn chưa cài đặt hãy tham khảo ngay bài viết Hướng dẫn cài đặt Docker trên hệ điều hành Linux liền nha
Tại sao lại sử dụng Docker để chạy WordPress?
Thông thường để có thể chạy được WordPress chúng ta hay sử dụng 2 stack sau: LAMP (Linux, Apache, MySQL, và PHP) hay LEMP(Linux, Nginx, MySQL, và PHP) việc này làm cho mình phải tốn nhiều thời gian để cài đặt từng bước một với stack mình lựa chọn.
Trong trường hợp bạn đã có kiến thức cơ bản về cách cài đặt LAMP và LEMP, thì một lý do để chúng ta đỡ phải tốn thời gian và thao tác cài đặt đó là dùng Docker và Docker Compose
WordPress, MySQL được đóng gói (images) và duy trì trên Docker Hub, việc sử dụng chúng có những lợi ích sau đây:
- Cấu hình phần mềm sẵn sàng mọi thứ cho bạn, điều đó có nghĩa là bạn sẽ không cần quan tâm hay tuân theo quy trình từng bước cho từng ứng dụng để chúng có thể chạy được trên hệ thống của bạn
- Cập nhật phần mềm cũng vô cùng đơn giản cũng giống như việc tải một bản đóng gói từ Docker Hub
- Các images và containers được đóng gói rất gọn gàng, điều đó có nghĩa là chúng ta có thể xoá bỏ chúng một cách sạch sẽ gọn gàng
Bước 1: Khởi tạo thư mục chứa file docker-compose.yml
cd /home mkdir my_wordpress cd my_wordpress
Bước 2: Tạo file docker-compose.yml và khai báo container MySQL, WordPress
Tạo một file tên là docker-compose.yml
bằng nano
hoặc vim
, ở đây mình ví dụ bằng nano editor nhé
nano docker-compose.yml
Nội dung file docker-compose.yml
bên dưới.
Khai báo các thông số cho mysql
- User mình chọn là
root
cụ thể trong docker-compose làMYSQL_USER: root
- Password của mysql mình cũng đặt là
root
cụ thể trong docker-compose làMYSQL_ROOT_PASSWORD: root
- Database name mình đặt là
wordpress
cụ thể trong file docker-compse làWORDPRESS_DB_NAME: wordpress
Bạn có thể thay đổi user/pass và database name tùy ý mình nhé
version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: root MYSQL_PASSWORD: root wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: root WORDPRESS_DB_NAME: wordpress volumes: db_data: {}
Bước 3: Khởi chạy tất cả các service
Chúng ta khởi động services với cái config của file docker-compose.yml
với lệnh sau
docker-compose up -d
Với lệnh sau có tham số -d
bạn lưu ý các container sẽ chạy nền, còn nếu không có tham số -d
bạn sẽ thấy mọi tiến trình access page get post... dùng để debug
Bước 4: Hoàn thành cài đặt WordPress Docker Compose và thử truy cập WordPress
Truy cập vào link http://localhost:8000
bắt đầu setup WordPress và done
Bước 5: Cài đặt phpmyadmin trên Docker Compose
Để có thể dùng được phpmyadmin trên Docker Compose bạn cần thêm dòng code này vào bên dưới services wordpress trong file docker-compose.yml
... phpmyadmin: image: phpmyadmin/phpmyadmin restart: always ports: - 3333:80 environment: PMA_HOST: db MYSQL_ROOT_PASSWORT: root ...
và cuối cùng ta có file docker-compose.yml
hoàn chỉnh như sau
version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: root MYSQL_PASSWORD: root wordpress: depends_on: - db image: wordpress:latest ports: - 8000:80 restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: root WORDPRESS_DB_NAME: wordpress phpmyadmin: image: phpmyadmin/phpmyadmin restart: always ports: - 3333:80 environment: PMA_HOST: db MYSQL_ROOT_PASSWORT: root volumes: db_data: {}
Bước 6: Khởi chạy services pull phpmyadmin bằng docker compose
- Cũng như bước 3 chúng ta cũng sẽ khởi chạy lại các services cũng bằng lệnh
docker-compose up -d
để cài đặt phpmyadmin - Và truy cập vào đường dẫn
http://localhost:3333
để thấy được giao diện phpmyadmin tất nhiên đăng nhập với user mysql và pass mysql đều làroot
Kết
Vậy là mình đã hoàn thành các bước hướng dẫn bạn cách làm thế nào để Setup WordPress docker compose, và cài đặt phpmyadmin, rất dễ thực hiện và dễ hiểu, nếu bạn có chỗ nào thắc mắc chưa hiểu, hoặc bị kẹt chỗ nào chưa rõ bạn có thể comment bên dưới bài viết ?, mình sẽ trả lời lại cho bạn ở phần comment sớm nhất có thể nhé ?