Hello các tình yêu ở bài học này ta sẽ tạo một service bằng container docker.
Mà service cụ thể ở đây là nginx-php-fpm bài học trước mình có nói là sử dụng apache cho đơn giản, nhưng mà xu hướng xài nginx-php-fpm ngày càng tăng do nginx có khả năng cache tốt. Vì vậy mình xin được đổi thành service run php thành nginx-php-fpm.
Mở đầu bài học.
Phần này sẽ giúp các bạn có 2 skill.
– Map port từ laptop(từ host) vào container (Mục đích là để khi truy cập vào một port bên ngoài host hay từ laptop nó sẽ đẩy traffic xuống port khác của container theo một logical network bên dưới)
– Thứ 2 là kĩ năng Volumes một directory từ ngoài host vào container. Giúp các bạn chỉnh sửa dễ dàng khi đang dev một application nào đó sử dụng container mà cần thay đổi source code liên tục.
Ok. Trước tiên ta cần pull một image có chứa nginx-php-fpm trước.
Mình có search được 1 image trên dockerhub https://hub.docker.com/r/richarvey/nginx-php-fpm/ các bạn bật qua tab “tag” để xem các version mà richarvey đã build nhé.
Như hình thì có thể thấy được những tag name như latest php7 và php5 mình sử dụng php7 để làm bài lab này cho các bạn.
Lét gâu mở terminal lên nhớ lệnh pull image không nào. Ta cần pull image có tên <richarvey/nginx-php-fpm:php7> sau dấu “:” là tag Name đó các bạn.
Do mình pull về rồi nên image nó không pull những layer về nữa. Sau đó kiểm tra image được pull về bằng cách gõ docker images để list những image mà ta đã pull.
Rồi đã qua bước kéo được cái image đó về, giờ làm sao run nó lên đây hí hí, 1 dòng lệnh để run thôi.
Dòng1: là dòng run container chạy nginx-php-fpm
Dòng2: hiển thị id của container vừa tạo
Dòng3: exec vào container bằng bash
Dòng4: vào thư mục source của nginx là /var/www/html
Dòng5: ghi chữ “Hello world” vào file index.php
Kiểm tra bằng trình duyệt ta vào localhost:4200 sẽ thấy
Tiếp nhé bây giờ ta vướng một chỗ là chẳng lẽ mỗi lần tạo source code thì lại vào container exec rồi sửa tạo file hay xoá file. Làm thế rất phức tạp đúng ko nhẩy.
Vậy làm thế nào để khi tạo file bên ngoài máy laptop của mình nó cũng tạo bên trong container? Ta đi tiếp skill tiếp theo.
Volume từ một directory ngoài host vào container.
Tất nhiên là phải xoá container cũ đang run ở port 4200 ta sẽ không tạo được container khác map port 4200 này nữa. Vậy hoặc bạn xoá container cũ hoặc bạn đổi port 4200 thành 4201 chả hạn nha.
Mình map thư mục /Users/kiemsi.lv/Documents/htmlphp ngoài host bằng cờ -v vào thư mục /var/www/html trong container. Khi đó mọi thay đổi ở thục mục /Users/kiemsi.lv/Documents/htmlphp thì bên trong container thư mục volume tới cũng sẽ thay đổi. Tiếp đến tạo file index.php và index2.php với nội dung tương ứng là index và index2.
Cuối cùng kiểm tra trên trình duyệt nhé.
Các bạn đừng quan tâm nhiều đến cờ -d -it sẽ có một bài mình nói rõ về những cờ này.
Tổng kết:
– Khi muốn map port từ laptop(host) vào container ta sử dụng cờ -p <porthost>:<portcontainer>
– Khi muốn volumes một directory từ host vào container ta sử dụng cờ -v <directoryhost>:<directorycontainer>
Lời kết:
– Không có gì là khó khăn phải không >”<. Có gì khó hiểu các bạn cứ góp ý cho mình tại post này. Mình sẽ cố gắng cải thiện phần hướng dẫn và sẽ cố gắng quay video để các bạn có thể cũng dễ dàng theo dõi.
– Bật mí bài tiếp theo. Chúng ta có nginx-php-fpm rồi ta còn thiếu cái nữa là databases, Làm sao để dựng lên 1 cái databases mysql chẳng hạn, rồi làm sao để container run nginx-php-fpm có thể kết nối được đến mysql chúng ta cùng chờ bài học tiếp theo nhé. Good bye my lol :D.
The website https://www.cashhomebuyers.io/indiana/ offers a hassle-free way to sell your home in Illinois