Wyveo nginx-php-fpm

Bạn có thể đã nghe từ đứa trẻ mới quanh khu phố được gọi là "Docker"? . Đến cuối của nó, bạn nên biết. - cách thiết lập Docker "nguyên bản" trên máy Windows 10 - cách xây dựng và chạy bộ chứa từ dòng lệnh - cách đăng nhập vào bộ chứa và khám phá chúng để biết thông tin - Dockerfile là gì và cách sử dụng nó - cách bộ chứa có thể

Ghi chú. Tôi sẽ không chỉ đi trên con đường hạnh phúc trong hướng dẫn này. Điều đó có nghĩa là tôi sẽ đi sâu vào một số thứ không hoàn toàn liên quan đến docker [e. g. cách tìm ra vị trí của các tệp cấu hình cho php-fpm], nhưng điều đó rất quan trọng cần hiểu, vì chúng cho phép bạn tự giải quyết các vấn đề sau này

Nhưng nếu bạn không có nhiều thời gian, bạn cũng có thể chuyển thẳng đến tl;dr

Tất cả các mẫu mã đều có sẵn công khai trong kho Hướng dẫn Docker PHP của tôi trên Github. Nhánh của hướng dẫn này là part_1_setting-up-php-php-fpm-and-nginx-for-local-development-on-docker

Tất cả các phần đã xuất bản của Docker PHP Tutorial được thu thập dưới một trang chuyên dụng tại Docker PHP Tutorial. Phần sau là Thiết lập PhpStorm với Xdebug để phát triển cục bộ trên Docker

Nếu muốn theo dõi, vui lòng đăng ký RSS feed hoặc qua email để nhận thông báo tự động khi có phần tiếp theo. ]

Mục lục

  • Giới thiệu
    • điều kiện tiên quyết
    • Tại sao nên sử dụng Docker?
    • Chuyển đổi từ Vagrant
  • Thiết lập Docker
  • Thiết lập bộ chứa PHP cli
    • Cài đặt Xdebug trong bộ chứa PHP
    • Thay đổi hình ảnh liên tục với Dockerfile
  • Thiết lập ngăn xếp web với php-fpm và nginx
    • Thiết lập nginx
    • Thiết lập php-fpm
      • Đang cài đặt xdebug
    • Kết nối nginx và php-fpm
  • Để tất cả chúng cùng nhau. Gặp docker-compose
  • tl;dr

Giới thiệu

điều kiện tiên quyết

Tôi cho rằng bạn đã cài đặt Git bash cho Windows. Nếu không, hãy làm điều đó trước, xem Thiết lập phần mềm. Git và Git Bash

Tại sao nên sử dụng Docker?

Tôi sẽ không đi sâu vào chi tiết Docker là gì và tại sao bạn nên sử dụng nó, bởi vì những người khác đã nói rất nhiều về điều này.

Đối với tôi, lý do chính của tôi là - Các liên kết tượng trưng trong vagrant không hoạt động như bình thường - VM trở nên cồng kềnh và khó quản lý theo thời gian - Quá trình thiết lập trong nhóm liên quan đến rất nhiều công việc - Tôi đã muốn học Docker khá lâu

Nói chung, Docker giống như một máy ảo, vì vậy nó cho phép chúng tôi phát triển trong một hệ điều hành mà chúng tôi chọn [e. g. Windows] nhưng chạy mã trong cùng một môi trường như trong sản xuất [e. g. trên máy chủ linux]. Nhờ các nguyên tắc cốt lõi của nó, nó làm cho việc tách các dịch vụ trở nên thực sự dễ dàng [e. g. có một máy chủ chuyên dụng cho cơ sở dữ liệu của bạn] - một lần nữa - là điều nên xảy ra trong quá trình sản xuất

Chuyển đổi từ Vagrant

Trên Windows, bạn có thể sử dụng Hộp công cụ Docker [về cơ bản là một máy ảo có thiết lập Docker trên đó] hoặc Docker dựa trên Hyper-V cho Windows. Hướng dẫn này sẽ chỉ xem xét phần sau

Một lời cảnh báo. Thật không may, chúng ta không thể có các vị thần khác ngoài Docker [trên Windows]. Máy khách Docker gốc yêu cầu kích hoạt Hyper-V, điều này sẽ khiến Virtualbox không hoạt động nữa. Do đó, chúng tôi sẽ không thể sử dụng Vagrant và Docker cùng nhau. Đây thực sự là lý do chính khiến tôi mất nhiều thời gian để bắt đầu làm việc với Docker

Thiết lập Docker

Đầu tiên, tải xuống Docker cho Windows [yêu cầu Microsoft Windows 10 Professional hoặc Enterprise 64-bit]. Phiên bản tôi đang sử dụng trong hướng dẫn này là

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
21. Trong quá trình cài đặt, hãy bỏ chọn tùy chọn "Sử dụng bộ chứa Windows thay vì bộ chứa Linux" vì chúng tôi dự định phát triển trên bộ chứa linux [bạn có thể thay đổi tùy chọn này sau]

Sau khi cài đặt xong, chúng ta cần đăng xuất khỏi Windows và đăng nhập lại. Docker sẽ bắt đầu tự động. Nếu không, sẽ có biểu tượng "Docker cho Windows" được đặt trên màn hình nền của bạn. Nếu Hyper-V chưa được kích hoạt, Docker sẽ tự động thúc giục bạn thực hiện ngay

Nếu bạn đồng ý, các tính năng của Hyper-V và vùng chứa sẽ được kích hoạt và quá trình khởi động lại sẽ bắt đầu. Xem Cài đặt Hyper-V trên Windows 10 để hủy kích hoạt lại

thận trọng. VirtualBox sẽ ngừng hoạt động sau đó. Khởi động một trong các máy trước đây của tôi từ giao diện VirtualBox hoặc qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
22 không thành công với thông báo lỗi

VT-x không khả dụng [VERR_VMX_NO_VMX]

Sau khi khởi động lại, Docker sẽ tự khởi động và màn hình chào mừng xuất hiện

Chúng ta có thể bỏ qua điều đó [đóng cửa sổ]. Ngoài ra, một biểu tượng mới được thêm vào khay hệ thống của bạn. Nhấp chuột phải sẽ hiển thị menu ngữ cảnh

Mở tab "Thiết bị dùng chung" và đánh dấu vào ổ cứng trên máy chủ mà bạn muốn chia sẻ với bộ chứa Docker

Ghi chú. Chúng tôi sẽ vẫn cần xác định ánh xạ đường dẫn rõ ràng cho các vùng chứa thực tế sau này, nhưng ổ cứng chứa đường dẫn đó phải được cung cấp tại đây. Sau khi nhấp vào "Áp dụng", bạn sẽ được nhắc nhập thông tin đăng nhập của mình

Tiếp theo, mở tab "Nâng cao". Bạn thực sự không phải thay đổi bất kỳ cài đặt nào nhưng nếu bạn [như tôi] không thiết lập

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
23 làm phân vùng lớn nhất, bạn có thể muốn thay đổi "Vị trí ảnh đĩa". Tôi đang đặt của tôi tại
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
24. Có thể mất vài phút để Docker xử lý các thay đổi

Docker "vật lý" lưu trữ hình ảnh vùng chứa ở vị trí đó

Xin chúc mừng, Docker hiện đã được thiết lập trên máy của bạn 😊

Thiết lập bộ chứa PHP cli

Bây giờ chúng ta đã có những thứ chung chung, hãy thiết lập vùng chứa đầu tiên của chúng ta. Tôi đã tạo thư mục

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
25 và sẽ chạy các ví dụ còn lại trong đó

Đầu tiên, hãy tạo một thư mục cho mã nguồn của chúng tôi

mkdir -p "C:/codebase/docker-php/app"

Để đơn giản, chúng tôi sẽ sử dụng hình ảnh PHP chính thức và chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli

Nghĩa là

________số 8

Kết quả trông giống như thế này

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f

Vì chúng tôi không có hình ảnh trên máy của mình [xem

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
26], Docker cố gắng lấy nó từ sổ đăng ký chính thức tại https. // trung tâm. người đóng tàu. com/. Chúng tôi đã đặc biệt chọn "7. 0-cli" của hình ảnh PHP [có nghĩa là. PHP7. 0 chỉ CLI]. Xem https. // trung tâm. người đóng tàu. com/_/php/ để biết danh sách tất cả các thẻ/hình ảnh có sẵn

Bây giờ hãy xem liệu container có thực sự chạy qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
27

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
2

Kỳ dị. Vì một số lý do, chúng tôi không thấy vùng chứa mới được tạo của mình ở đó. Hãy kiểm tra với cờ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
28 để liệt kê tất cả các vùng chứa, kể cả những vùng không chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
4

à há. Vì vậy, vùng chứa đã được tạo, nhưng ngay lập tức dừng lại [xem

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
29]. Đó là bởi vì một container chỉ tồn tại khi tiến trình chính của nó đang chạy. Theo các tài liệu,

Quy trình chạy chính của vùng chứa là ENTRYPOINT và/hoặc CMD ở cuối Dockerfile. "

Câu trả lời này giải thích khá rõ về sự khác biệt giữa CMD và ENTRYPOINT. Vì chúng ta chưa xác định Dockerfile, chúng ta sẽ cần xem Dockerfile của hình ảnh cơ sở mà chúng ta đang sử dụng, nhưng tôi thực sự không muốn đi xuống hố thỏ này ngay bây giờ. Về cơ bản, "vấn đề" là, vùng chứa không có quy trình/dịch vụ chạy dài được xác định, [như các vùng chứa php-fpm hoặc nginx thực hiện sau này]. Để giữ cho vùng chứa tồn tại, chúng ta cần thêm cờ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
30 vào lệnh
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
31

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
8

Nhưng sau đó điều này xảy ra

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
9

Rõ ràng, chúng ta không thể sử dụng lại tên cũ [

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
32]. đáng tiếc. Vì vậy, trước tiên hãy xóa vùng chứa trước qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
1

và thử lại sau đó

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
2

Thật tuyệt, vì vậy bây giờ vùng chứa đã hoạt động, hãy "đăng nhập" qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
0

Bạn có thể nhận được thông báo lỗi sau

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
1

Nếu vậy, thêm tiền tố vào lệnh bằng

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
33 sẽ hữu ích

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
2____03

Một

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
34 nhanh chóng trong vùng chứa xác minh rằng chúng tôi thực sự có thể chạy các tập lệnh php trong đó

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
4

Hãy nhớ ánh xạ đường dẫn, mà chúng tôi đã chỉ định?

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
5

Sẽ trông như thế này trên máy chủ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
6

Và như thế này từ bên trong container

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
7

Hãy chạy tập lệnh trong vùng chứa qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
8
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
9

hoàn hảo. Chúng tôi đã tạo tệp trên hệ thống máy chủ của mình và tệp tự động có sẵn trong vùng chứa

Cài đặt Xdebug trong bộ chứa PHP

Vì chúng tôi dự định sử dụng Docker để thiết lập phát triển cục bộ nên khả năng gỡ lỗi là bắt buộc. Vì vậy, hãy mở rộng hình ảnh của chúng ta bằng tiện ích mở rộng xdebug. Readme của kho lưu trữ Docker PHP chính thức thực hiện tốt công việc giải thích cách cài đặt tiện ích mở rộng. Đối với xdebug, chúng tôi sẽ sử dụng PECL. Để cài đặt tiện ích mở rộng, hãy đảm bảo đăng nhập vào vùng chứa và chạy

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
0

Bạn sẽ thấy một đầu ra như thế này

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
1

Tiện ích mở rộng xdebug đã được xây dựng và lưu trong

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
36. Để thực sự kích hoạt nó, hãy chạy

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
2

Lệnh trợ giúp đó sẽ đặt tệp

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
37 trong thư mục cho các tệp php ini bổ sung có nội dung

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
3

cho phép mở rộng. btw. bạn có thể định vị thư mục tệp php ini bổ sung bằng cách chạy

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
4

Kết quả

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
5

Khi chúng tôi kiểm tra nội dung của thư mục đó, chúng tôi thực sự sẽ tìm thấy tệp

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
38 với nội dung được đề cập trước đó và
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
39 tiết lộ rằng xdebug thực sự đang hoạt động

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
6

Bây giờ, chúng tôi sẽ đăng xuất khỏi vùng chứa [nhập "exit" hoặc nhấn

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
40 +
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
41] và dừng vùng chứa qua

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
7
docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
8

Bây giờ chúng tôi bắt đầu lại vùng chứa thông qua

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
9

đăng nhập lại và kiểm tra xem xdebug có còn không

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
0

Và. nó là. Vì vậy, những thay đổi chúng tôi đã thực hiện "tồn tại" khi khởi động lại vùng chứa. Nhưng mà. Chúng sẽ không tồn tại sau khi "xây dựng lại" vùng chứa. Trước tiên, chúng tôi dừng và xóa vùng chứa qua

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
1

Cờ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
42 buộc container dừng lại. Nếu không, chúng tôi sẽ cần thêm một
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
43 trước

Sau đó, chúng tôi xây dựng lại nó, đăng nhập

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
2

và kiểm tra xdebug

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
3

mà sẽ không còn ở đó nữa

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
4

Lưu ý ID vùng chứa mới [trước.

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
44; .
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
45] và
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
46 đó không mang lại kết quả gì

Thay đổi hình ảnh liên tục với Dockerfile

Nói một cách đơn giản, Dockerfile mô tả những thay đổi mà chúng tôi thực hiện đối với hình ảnh cơ sở, vì vậy chúng tôi [và mọi người khác] có thể dễ dàng tạo lại cùng một môi trường. Trong trường hợp của chúng tôi, chúng tôi cần xác định hình ảnh cơ sở PHP mà chúng tôi đã sử dụng cũng như hướng dẫn cài đặt và kích hoạt xdebug. Để tách biệt rõ ràng cơ sở hạ tầng khỏi mã, chúng tôi sẽ tạo một thư mục mới tại

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
47. Tạo một tệp có tên
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
48 trong thư mục này

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
5

và cung cấp cho nó nội dung sau

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
6

Thay đổi thư mục

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
47 và xây dựng hình ảnh dựa trên Dockerfile đó

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
7

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
50 thực sự là tùy chọn vì dù sao đây cũng là giá trị mặc định. "docker-php-image" là tên của hình ảnh mới của chúng tôi

Nếu bạn gặp lỗi sau

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
8

bạn có thể đã bỏ lỡ dấu

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
51 ở cuối
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
52;]

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
9

Lưu ý rằng việc xây dựng mất nhiều thời gian hơn trước, vì Docker hiện cần thực hiện thêm công việc cài đặt xdebug. Thay vì sử dụng hình ảnh cơ sở

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
53, bây giờ chúng ta sẽ sử dụng hình ảnh
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
54 mới, sáng bóng của mình để bắt đầu vùng chứa và kiểm tra xdebug

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
20
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
21

Aaaaand chúng tôi gặp lỗi vì chúng tôi đã cố sử dụng cùng tên ["docker-php"], mà chúng tôi đã sử dụng cho vùng chứa vẫn đang chạy trước đó. Thở dài. may mắn thay, chúng tôi đã biết cách giải quyết vấn đề đó thông qua

$ docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally
7.0-cli: Pulling from library/php
f2aa67a397c4: Pulling fs layer
c533bdb78a46: Pulling fs layer
65a7293804ac: Pulling fs layer
35a9c1f94aea: Pulling fs layer
54cffc62e1c2: Pulling fs layer
153ff2f4c2af: Pulling fs layer
96d392f71f56: Pulling fs layer
e8c43e665458: Pulling fs layer
35a9c1f94aea: Waiting
54cffc62e1c2: Waiting
153ff2f4c2af: Waiting
96d392f71f56: Waiting
e8c43e665458: Waiting
c533bdb78a46: Verifying Checksum
c533bdb78a46: Download complete
35a9c1f94aea: Verifying Checksum
35a9c1f94aea: Download complete
f2aa67a397c4: Verifying Checksum
f2aa67a397c4: Download complete
153ff2f4c2af: Verifying Checksum
153ff2f4c2af: Download complete
54cffc62e1c2: Verifying Checksum
54cffc62e1c2: Download complete
e8c43e665458: Verifying Checksum
e8c43e665458: Download complete
96d392f71f56: Verifying Checksum
96d392f71f56: Download complete
f2aa67a397c4: Pull complete
65a7293804ac: Verifying Checksum
65a7293804ac: Download complete
c533bdb78a46: Pull complete
65a7293804ac: Pull complete
35a9c1f94aea: Pull complete
54cffc62e1c2: Pull complete
153ff2f4c2af: Pull complete
96d392f71f56: Pull complete
e8c43e665458: Pull complete
Digest: sha256:ff6c5e695a931f18a5b59c82b1045edea42203a299e89a554ebcd723df8b9014
Status: Downloaded newer image for php:7.0-cli
56af890e1a61f8ffa5528b040756dc62a94c0b929c29df82b9bf5dec6255321f
1

Thử lại

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
20
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
24

Vâng, tất cả đều tốt. btw. vì chúng tôi "chỉ" muốn kiểm tra xem xdebug đã được cài đặt hay chưa, chúng tôi cũng có thể chỉ cần chuyển

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
55 cho lệnh
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
31

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
25

Xin lưu ý rằng điều này sẽ tạo một vùng chứa mới mỗi khi nó chạy [, lưu ý mục đầu tiên có tên tuyệt vời "distracted_mclean"]

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
26

Trước khi tiếp tục, hãy []dừng và xóa tất cả vùng chứa qua][https. // tường mã. com/p/ewk0mq/stop-remove-all-docker-containers]

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
27

Phần

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
57 chỉ trả về id số của tất cả các vùng chứa và chuyển chúng tới lệnh
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
58

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
28

Thiết lập ngăn xếp web với php-fpm và nginx

Vì hầu hết mọi người có lẽ không chỉ làm việc trên các tập lệnh CLI mà còn trên các trang web, bước tiếp theo trong hướng dẫn này là thiết lập máy chủ web nginx và kết nối nó với php-fpm

Thiết lập nginx

Chúng tôi sẽ sử dụng hình ảnh nginx chính thức và vì chúng tôi chưa biết gì về hình ảnh đó, hãy chạy và khám phá nó một chút

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
29

sản lượng

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
40

Lưu ý rằng chúng tôi chỉ sử dụng số lượng đối số tối thiểu ở đây. Vì chúng tôi không chỉ định tên, nên chúng tôi sẽ chỉ sử dụng ID để đăng nhập [vì vậy hãy chắc chắn sử dụng tên mà trình bao của bạn đã trả về - đừng chỉ sao chép dòng bên dưới. P]

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
41

Chúng tôi hy vọng rằng có một tiến trình nginx đang chạy, nhưng khi kiểm tra với

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
59, chúng tôi nhận được

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
42

Điều này phổ biến khi sử dụng hình ảnh docker, vì chúng thường được giữ ở mức tối thiểu nhất có thể. Mặc dù đây là một thực tiễn tốt trong sản xuất, nhưng nó hơi cồng kềnh trong quá trình phát triển. Vì vậy, hãy cài đặt

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
60 qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
43

và thử lại

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
44

Ah. Tốt hơn nhiều. Hãy tìm hiểu sâu hơn một chút và xem quy trình được định cấu hình như thế nào thông qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
61

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
45

Tuyệt vời, vì vậy tệp cấu hình được đặt ở vị trí mặc định tại

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
62 [xem
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
63]. Kiểm tra tệp đó sẽ hiển thị cho chúng tôi, nơi chúng tôi cần đặt các tệp cấu hình bổ sung [e. g. cho cấu hình trang web của bạn]. Chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
46

và nhìn thấy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
47

Lưu ý dòng

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
64 ở cuối tệp. Trong thư mục này, chúng ta sẽ tìm cấu hình nginx mặc định

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
48
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
49

Vì vậy, máy chủ đang lắng nghe trên cổng 80. Thật không may, chúng tôi không thể truy cập máy chủ web từ máy chủ windows của chúng tôi, vì hiện tại [2018-05-31] một lỗi mở để truy cập IP vùng chứa từ máy chủ windows [đừng lo lắng, chúng tôi sẽ khắc phục điều đó bằng ánh xạ cổng . Vì vậy, để xác minh rằng máy chủ đang thực sự hoạt động, chúng tôi sẽ cài đặt

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
65 bên trong bộ chứa nginx và tìm nạp
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
66

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
80

Hình như thế này

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
81

có vẻ tốt. Bây giờ hãy tùy chỉnh một số thứ. - trỏ gốc tới

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
67 - đặt tệp chỉ mục "Xin chào thế giới" trong
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
68

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
82

Để các thay đổi có hiệu lực, chúng ta cần tải lại nginx qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
83
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
84

Kiểm tra với curl, et voilá

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
85

Với tất cả thông tin mới đó, chúng tôi có thể thiết lập hình ảnh nginx của mình với cấu trúc thư mục sau trên máy chủ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
86

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
69

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
87

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
70

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
88

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
71

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
89

Dọn dẹp vùng chứa nginx "thăm dò",

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
72 thành
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
73 và xây dựng hình ảnh mới

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
90
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
91

Và sau đó chạy vùng chứa "mới" qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
92

ở đâu

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
93

Nhờ ánh xạ cổng, giờ đây chúng ta có thể mở http một cách đơn giản. //127. 0. 0. 1. 8080/ trong trình duyệt trên máy chủ và xem nội dung của tệp

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
71 của chúng tôi

Nếu bạn muốn biết thêm thông tin về cách chạy nginx trên Docker, hãy xem hướng dẫn này

Trước khi chúng ta tiếp tục, hãy dọn dẹp

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
94

Thiết lập php-fpm

Chúng tôi đã quen thuộc với hình ảnh docker PHP chính thức nhưng cho đến nay mới chỉ sử dụng phiên bản chỉ có cli. FPM có thể được kéo vào bằng cách sử dụng các thẻ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
75 [e. g. như
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
76]. Cũng như với nginx, trước tiên hãy khám phá hình ảnh php-fpm

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
95

Điều đầu tiên cần lưu ý là hình ảnh sẽ tự động hiển thị cổng 9000 khi

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
27 hiển thị

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
96

Khi chúng tôi kiểm tra Dockerfile đã được sử dụng để xây dựng hình ảnh [bấm vào đây và tìm kiếm "7. 0-fpm" hiện tại [2018-05-31] liên kết ở đây], chúng ta có thể thấy rằng nó chứa một

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
78 ở dưới cùng

Chúng ta có thể tìm ra những gì khác

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
97

Đầu tiên, sẽ kiểm tra vị trí của các tệp cấu hình thông qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
79

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
98

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
80 là nghi phạm của chúng tôi. Vì vậy, rất có khả năng chúng tôi sẽ tìm thấy tệp cấu hình chỉ thị toàn cầu tại
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
81 [rất tiếc, chúng tôi không thể giải quyết vị trí trực tiếp].
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
82'ing tệp này cho
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
83 tiết lộ vị trí cho cấu hình chỉ thị nhóm

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
99
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
10

Hm - một đường dẫn tương đối. Điều đó có vẻ hơi kỳ lạ?

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
11
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
12

Ah - điều đó có ý nghĩa hơn. Vì vậy, chúng tôi cần giải quyết

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
86 liên quan đến
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
87. Kết quả là
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
88 [thông thường ít nhất bạn sẽ tìm thấy tệp
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
89 trong đó]. Cấu hình nhóm xác định trong số những thứ khác cách php-fpm lắng nghe các kết nối [e. g. thông qua ổ cắm Unix hoặc qua TCP IP. Hải cảng]

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
13
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
14

php-fpm ist đang nghe trên cổng 9000 trên 127. 0. 0. 1 [máy chủ cục bộ]. Vì vậy, hoàn toàn hợp lý khi để lộ cổng 9000

Đang cài đặt xdebug

Vì chúng tôi có thể cũng muốn gỡ lỗi php-fpm, xdebug cũng cần được thiết lập. Quá trình này khá giống với hình ảnh cli

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
15

Tất nhiên, chúng tôi cũng sẽ đặt nó trong Dockerfile của riêng nó

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
16

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
90

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
17

Dọn dẹp vùng chứa thử nghiệm và xây dựng hình ảnh mới

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
18

Kết nối nginx và php-fpm

Bây giờ chúng ta có các thùng chứa nginx và php-fpm, chúng ta cần kết nối chúng. Để làm như vậy, chúng tôi phải đảm bảo rằng cả hai vùng chứa đều nằm trong cùng một mạng và có thể giao tiếp với nhau [đây là một vấn đề phổ biến]. Docker cung cấp cái gọi là mạng cầu nối do người dùng xác định cho phép khám phá dịch vụ tự động. Về cơ bản, điều đó có nghĩa là bộ chứa nginx của chúng ta có thể sử dụng tên của bộ chứa php-fpm để kết nối với nó. Nếu không, chúng tôi sẽ phải tìm ra địa chỉ IP của vùng chứa trong mạng mặc định mỗi khi chúng tôi khởi động vùng chứa

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
19

hiển thị danh sách các mạng hiện tại

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
20

Bây giờ, hãy thêm một cái mới có tên là

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
91 cho ngăn xếp web của chúng ta thông qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
21____222

Khởi động bộ chứa nginx và kết nối nó với mạng mới thông qua

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
23

Cuối cùng, chúng ta cần gắn thư mục mã cục bộ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
92 mà chúng ta đã gắn vào bộ chứa nginx tại
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
67 cũng trong bộ chứa php-fpm ở cùng một vị trí

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
24

Lưu ý rằng chúng tôi đã chỉ định mạng trong lệnh chạy thông qua tùy chọn

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
94. Chúng tôi có thể xác minh rằng cả hai vùng chứa được kết nối với
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
91 bằng cách chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
25
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
26

Khóa "Container" tiết lộ rằng bộ chứa

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
96 có địa chỉ IP 172. 18. 0. 3 và vùng chứa docker-nginx có thể truy cập được qua 172. 18. 0. 2. Nhưng chúng ta thực sự có thể kết nối từ nginx đến php-fpm không?

Đăng nhập vào nginx container

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
27

và ping IP

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
28
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
29

tốt, sau khi chúng tôi cung cấp lệnh bằng cách cài đặt

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
97

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
00
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
01

Chúng tôi có thể ping container - điều đó tốt. Nhưng chúng tôi cũng được hứa rằng chúng tôi có thể tiếp cận container có tên là

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
96

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
02
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
03

Và chúng ta có thể - tuyệt vời. Bây giờ chúng ta cần yêu cầu nginx chuyển tất cả các yêu cầu liên quan đến PHP sang php-fpm bằng cách thay đổi tệp

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
70 trên máy chủ cửa sổ của chúng ta thành

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
04

Lưu ý dòng

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
00 cho nginx biết cách truy cập dịch vụ php-fpm của chúng tôi. Bởi vì chúng tôi đã gắn thư mục
docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
01, chúng tôi chỉ cần tải lại nginx

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
83

và mở http. //127. 0. 0. 1. 8080/xin chào thế giới. php trên trình duyệt trên máy chủ của bạn

btw. cũng có một hướng dẫn hay về geekyplatypus. com về cách Dockerise ứng dụng PHP của bạn với Nginx và PHP7-FPM. Nhưng vì nó đang sử dụng docker-compose nên bạn có thể muốn đọc chương tiếp theo trước. ]

Để tất cả chúng cùng nhau. Gặp docker-compose

Hãy tổng kết những gì chúng ta phải làm bây giờ để thiết lập và vận hành mọi thứ. 1. bắt đầu php-cli 2. bắt đầu nginx 3. bắt đầu php-fpm

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
06

hừm. Tôi đoán là ổn. nhưng nó cũng cảm thấy như "rất nhiều". Sẽ không tốt hơn nhiều nếu mọi thứ được xác định gọn gàng ở một nơi phải không? . Hãy để tôi giới thiệu với bạn về docker-compose

Compose là một công cụ để xác định và chạy các ứng dụng Docker nhiều vùng chứa. Với Compose, bạn sử dụng tệp YAML để định cấu hình các dịch vụ của ứng dụng. Sau đó, với một lệnh duy nhất, bạn tạo và bắt đầu tất cả các dịch vụ từ cấu hình của mình

Hãy thực hiện từng bước một, bắt đầu với bộ chứa php-cli. Tạo tệp

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
02

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
07

Trước khi bắt đầu, chúng ta sẽ dọn dẹp các thùng chứa cũ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
27

Để kiểm tra docker-compose. yml chúng ta cần chạy

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
03 từ
docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
04

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
09
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
10

Lưu ý rằng hình ảnh được xây dựng từ đầu khi chúng tôi chạy

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
05 lần đầu tiên. Một
docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
06 cho thấy container đang chạy tốt, chúng ta có thể đăng nhập và thực thi mã nguồn từ máy chủ

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
11

Đăng nhập

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
12

và chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
8

hoạt động như trước đây

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
14

Bây giờ hãy đăng xuất khỏi vùng chứa và chạy

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
15

để đóng container xuống một lần nữa

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
16

Thêm các dịch vụ còn lại vào tệp

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
07

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
17

Và lên nữa

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
18
docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
19

Chỉ cần xây dựng nginx và php-fpm vì php-cli đã tồn tại. Hãy kiểm tra xem chúng tôi vẫn có thể mở http. //127. 0. 0. 1. 8080/xin chào thế giới. php trong trình duyệt trên máy chủ

Vâng, chúng tôi có thể. Vì vậy, thay vì cần chạy 3 lệnh khác nhau với một loạt các tham số, giờ đây chúng tôi đã giảm xuống

docker run                               // run a container
-d                                       // in the background [detached]
--name docker-php                        // named docker-php
-v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                         // windows host with /var/www in the container
php:7.0-cli                              // use this image to build the container
03. Có vẻ như một sự cải tiến đối với tôi;]

tl;dr

Toàn bộ bài viết có rất nhiều điều cần tiếp thu và rất có thể đó không phải là cách tiếp cận hiệu quả nhất khi bạn "chỉ muốn bắt đầu". Vì vậy, trong phần này, chúng tôi sẽ chỉ tóm tắt các bước cần thiết mà không có giải thích sâu

  • Tải xuống Docker cho Windows
  • Cài đặt Docker
    • kích hoạt Hyper-V [Hộp ảo sẽ ngừng hoạt động]
    • bật Chia sẻ đĩa trong cài đặt
  • Thiết lập cấu trúc thư mục sau ```` C. \codebase\docker-php
    • nginx\
      • conf. d\
      • Địa điểm. conf
      • Dockerfile
    • php-cli\
      • Dockerfile
    • php-fpm\
      • Dockerfile
    • ứng dụng\
      • mục lục. html
      • Chào thế giới. html
    • soạn thảo docker. yml ````
    • hoặc đơn giản là
      docker run                               // run a container
      -d                                       // in the background [detached]
      --name docker-php                        // named docker-php
      -v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                               // windows host with /var/www in the container
      php:7.0-cli                              // use this image to build the container
      
      09
  • Mở vỏ tại
    docker run                               // run a container
    -d                                       // in the background [detached]
    --name docker-php                        // named docker-php
    -v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                             // windows host with /var/www in the container
    php:7.0-cli                              // use this image to build the container
    
    04
  • chạy
    docker run                               // run a container
    -d                                       // in the background [detached]
    --name docker-php                        // named docker-php
    -v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                             // windows host with /var/www in the container
    php:7.0-cli                              // use this image to build the container
    
    03
  • kiểm tra trong trình duyệt thông qua
    • 127. 0. 0. 1. 8080
    • 127. 0. 0. 1. 8080/xin chào thế giới. php
  • chạy
    docker run                               // run a container
    -d                                       // in the background [detached]
    --name docker-php                        // named docker-php
    -v "C:/codebase/docker-php/app":/var/www // sync the directory C:/codebase/docker-php/app on the 
                                             // windows host with /var/www in the container
    php:7.0-cli                              // use this image to build the container
    
    12

Mã ứng dụng của bạn nằm trong thư mục

docker run -d --name docker-php -v "C:/codebase/docker-php/app":/var/www php:7.0-cli
92 và các thay đổi sẽ tự động có sẵn cho các vùng chứa. Thiết lập này biểu thị phần cuối của hướng dẫn đầu tiên. Trong phần tiếp theo chúng ta sẽ tìm hiểu cách thiết lập Docker trong PHPStorm, đặc biệt là kết hợp với xdebug

kết thúc

Xin chúc mừng, bạn đã làm được. Nếu bây giờ một số điều không hoàn toàn rõ ràng, đừng ngần ngại để lại nhận xét. Ngoài ra, bây giờ bạn sẽ có ý tưởng đầu tiên về docker là gì và bạn có thể sử dụng nó như thế nào

Nếu bạn muốn tìm hiểu sâu hơn, vui lòng xem các bài viết còn lại của loạt bài Docker PHP Tutorial

Vui lòng đăng ký nguồn cấp RSS hoặc qua email để nhận thông báo tự động khi phần tiếp theo này ra mắt. ]

Muốn giữ liên lạc?

Vì bạn đã kết thúc blog này, nên khả năng cao là bạn sẽ tham gia Phát triển phần mềm [có thể là PHP, Laravel, Docker hoặc Google Big Query] và tôi là một người rất thích phản hồi và kết nối mạng

Vì vậy - nếu bạn muốn giữ liên lạc, vui lòng gửi email cho tôi với đôi lời về bản thân và/hoặc kết nối với tôi trên LinkedIn hoặc Twitter hoặc chỉ cần đăng ký nguồn cấp dữ liệu RSS của tôi hoặc đi theo con đường điên rồ và đăng ký . ]

Theo dõi bài viết qua mail

Địa chỉ email

Tên đầu tiên

Chúng tôi sử dụng Mailchimp làm nhà cung cấp bản tin của mình. Bằng cách nhấp vào đăng ký, bạn xác nhận rằng thông tin của bạn sẽ được chuyển đến Mailchimp để xử lý. Tìm hiểu thêm về thực tiễn bảo mật của Mailchimp tại đây

PHP FPM dùng để làm gì?

PHP-FPM [Trình quản lý quy trình FastCGI] là giải pháp thay thế cho việc triển khai FastCGI của PHP với một số tính năng bổ sung hữu ích cho các trang web có lưu lượng truy cập cao. Đây là phương pháp ưa thích để xử lý các trang PHP bằng NGINX và nhanh hơn các phương pháp dựa trên CGI truyền thống như SUPHP hoặc mod_php để chạy tập lệnh PHP.

Cách cài đặt PHP 7. 4 trong Docker nginx?

Cách cài đặt PHP 7. 4 Với Nginx trên Ubuntu 20. 04 .
điều kiện tiên quyết
Đăng nhập vào Máy chủ và Cập nhật Gói Hệ điều hành Máy chủ
Cài đặt Nginx
Cài đặt PHP7. 4
Cài đặt PHP7. 4-FPM và các phần mở rộng khác
Định cấu hình Nginx để xử lý tệp PHP
Xác minh PHP

Làm cách nào để cài đặt các tiện ích mở rộng PHP trong Docker?

Dễ dàng cài đặt các tiện ích mở rộng PHP trong hình ảnh PHP Docker chính thức Cách sử dụng Tải xuống tập lệnh nhanh chóng Với Dockerfile Với curl Với thực thi trực tiếp từ curl .

Chủ Đề