‫Trước đây chúng ta đã nói về tệp Docker Compose YAML và trong bài giảng này, chúng
‫ta sẽ nói về dòng lệnh soạn. Yêu cầu đối với bài giảng này giống như phần còn lại của phần
‫này, bạn thực sự cần biết hình ảnh và vùng chứa cũng như cách sử dụng chúng và các khái niệm xung quanh chúng từ các phần trước, để
‫bạn có thể sử dụng tất cả những thứ bên trong lệnh soạn và YAML tập tin. Công cụ dòng lệnh Docker
‫Compose thực sự tách biệt với công cụ Docker.
‫Nó thực sự là một nhị phân riêng biệt. Nếu bạn đang sử dụng Docker cho Windows hoặc Docker cho Mac, nó
‫thực sự đi kèm với điều đó.
‫Nếu bạn cũng sử dụng hộp công cụ trên Windows 7, nó sẽ đi kèm với đó.
‫Nhưng nếu bạn đang sử dụng Linux, bạn phải tải xuống riêng và bạn có thể tải nó tại GitHub. com / docker / compile, nhưng bạn cũng có
‫thể chỉ cần tìm kiếm nó trên Google và sẽ có một liên kết trong các tài liệu tham
‫khảo cho phần này.
‫Nhưng tôi phải nói thật nhanh rằng nó không được thiết kế để trở thành một công cụ cấp sản xuất.
‫Nó cực kỳ lý tưởng để phát triển cục bộ và kiểm tra mọi thứ thực sự nhanh chóng mà nếu không thì có thể
‫phức tạp để nhập một loạt lệnh từ dòng lệnh. Hai lệnh phổ biến mà chúng ta sử dụng
‫sẽ là do docker soạn, đây có lẽ là những gì bạn sẽ gõ 90% thời gian.
‫Đó là một cửa hàng một cửa.
‫Về cơ bản, đó là một lệnh duy nhất để thực hiện mọi thứ trong tệp soạn, bao gồm tạo khối lượng, tạo mạng, khởi động tất cả các
‫vùng chứa với tất cả các tùy chọn cấu hình của chúng. Sau đó, để dọn dẹp khi bạn
‫hoàn
‫tất, trình docker soạn thảo, điều mà nhiều người thực sự quên làm, sẽ
‫thực sự dọn dẹp sau bạn. Nó sẽ loại bỏ các vùng chứa, loại bỏ các mạng và khối lượng không cần thiết nữa.
‫Nó cho phép bạn, với hai lệnh này, nhanh chóng nhảy vào và ra khỏi các môi trường khác nhau để phát triển.
‫Đây là nơi tôi thực sự thu hút được sự chú ý của các nhà phát triển đã quen với việc sử dụng vagrant up
‫và các công cụ khác để tùy chỉnh các môi trường phức tạp tại địa phương mà họ cần để phát triển.
‫Khi tôi cho họ xem Docker Compose và tệp soạn thư cũng như cách sử dụng dễ dàng cùng với Dockerfile, tôi thực
‫sự bắt đầu kích thích họ rằng đây có thể là một cách tốt hơn và một cách đáng tin cậy hơn để thiết lập môi
‫trường của họ.
‫Và nó không yêu cầu thời gian để thiết lập các máy ảo
‫khác nhau hoặc sự phức tạp của việc quản lý môi trường máy ảo.
‫Chỉ để cung cấp cho bạn một chút hương vị, nếu bạn có một dự án trong đó bạn có quy trình giới thiệu nhà phát triển mới điển hình,
‫tất cả chỉ nhằm tìm hiểu cách tải các công cụ phù hợp cho hệ thống của họ và tải đúng máy ảo
‫cũng như các tiện ích bổ sung phù hợp , và tất cả những thứ mà thông thường họ sẽ
‫phải xây dựng một môi trường nhân bản, với Docker Compose, thật
‫dễ dàng như sao chép môi trường có tệp soạn của bạn từ một số kho lưu trữ ở đâu đó và sau đó
‫chạy lệnh soạn thư của docker.
‫Nó thực sự có thể được dễ dàng.
‫Hãy nhảy vào và chơi xung quanh. Tôi đang ở trong thư mục soạn thảo văn bản mẫu 2. Thư mục soạn thảo mẫu 1 chỉ đơn giản
‫là một số ví dụ trực quan mà chúng tôi đã trình bày trong bài giảng trước.
‫Nhưng trong cái này, chúng ta sẽ có thể thực sự chạy cái này và nhận được kết quả nhanh chóng.
‫Tôi chỉ định soạn nhạc docker.
‫Thực ra trước khi chúng ta làm điều đó, hãy để tôi chỉ cho bạn biết nó là gì.
‫Điều này có hai dịch vụ hoặc hai vùng chứa và dịch vụ đầu tiên là máy chủ Nginx được định cấu hình làm
‫proxy trong trường hợp này.
‫Và điều đó sẽ được nghe trên cổng 80 trên máy cục bộ của tôi.
‫Bạn sẽ nhận thấy có một lệnh âm lượng ở đó mà tôi đã thực sự thực hiện gắn kết liên kết vào một tệp trong thư mục này
‫được gọi là tệp cấu hình nginx và nó thực sự là một tệp nhỏ rất đơn giản.
‫Không nhất thiết chúng ta phải biết tệp đó hoạt động như thế nào. Nó chỉ cho thấy, trong trường hợp này, tôi đang thực
‫sự lấy một tệp trên môi trường cục bộ của mình như thế nào. Giả sử rằng thư mục này là một kho lưu
‫trữ Git lưu trữ các tệp cấu hình này cho tôi. Nó cho phép tôi ánh xạ tệp đó vào vùng chứa và tôi thực sự,
‫ở phần cuối, bạn sẽ thấy nó nói, 'ro', nghĩa là chỉ đọc, nghĩa là tôi không thể thay đổi nó trong vùng chứa.
‫Điều đó không nhất thiết phải có ở đây. Tôi chỉ muốn cho bạn thấy rằng đó là
‫cách bạn sẽ làm điều đó trong trường hợp này. Tệp cấu hình đó thực sự đang nói
‫với Nginx, 'thay vì là
‫một máy chủ web, tôi muốn bạn trở thành một proxy ngược và ngồi trước một máy chủ khác', trong trường hợp
‫này, chúng tôi đang gọi là máy chủ web của mình, với dịch vụ của nó và nó đang chạy máy chủ Apache 2, là httpd hình ảnh từ
‫kho lưu trữ hình ảnh chính thức trên Docker Hub.
‫Bạn cũng có thể thấy, ở trên cùng, tôi đã chỉ định một phiên bản ở đây. Đó là cách tôi sẽ làm điều đó.
‫Bên trong dòng hình ảnh.
‫Vì vậy, điều sẽ xảy ra là khi tôi gõ trình soạn thư này lên, nó sẽ khởi động cả hai vùng chứa. Nó sẽ tạo ra một mạng riêng
‫cho hai người họ.
‫Nó sẽ tự động liên kết gắn kết tệp đó.
‫Nó sẽ mở cổng và nó sẽ bắt đầu kết xuất nhật ký ra màn hình của tôi.
‫Bạn sẽ thấy cách ở đó, nó nói, 'tạo ra hai thùng chứa này. 'Nó thực sự tạo
‫ra mạng lưới.
‫Bạn sẽ nhận thấy trong tệp của tôi, tôi không chỉ định vùng mạng hay vùng ổ đĩa vì chúng không thực
‫sự bắt buộc.
‫Chúng chỉ cần thiết nếu tôi cần thực hiện một số việc tùy chỉnh trong mạng, chẳng hạn như có thể thay đổi địa chỉ IP
‫mặc định hoặc thay đổi trình điều khiển mạng được sử dụng.
‫Hoặc trong trường hợp tập, tôi có thể tạo các tập đã đặt tên hoặc sử dụng một trình điều khiển âm lượng khác và chúng ta sẽ đi sâu
‫vào tất cả những điều đó sau trong các phần nâng cao.
‫Mong bạn biết đấy, những tệp này có thể đơn giản như thế nào.
‫Bạn thường không cần tất cả những thứ đó.
‫Những tính năng đó ở đó nếu bạn cần, nhưng thường thì những lệnh rất đơn giản, nhỏ như thế này sẽ giúp
‫bạn thực hiện được.
‫Tôi đã làm gì? Đây hiện là máy chủ Apache và máy chủ Nginx của tôi.
‫Bạn sẽ nhận thấy các bản ghi thực sự được tô màu ở đây.
‫Đó là một tính năng gọn gàng của Soạn mà bạn không nhất thiết phải có với
‫Docker là nó sẽ ghi lại tất cả các vùng chứa mà nó đang chạy trên màn hình ở phía trước.
‫Tôi luôn có thể làm điều tương tự như tôi làm với Docker và chạy docker compile
‫up -d, sẽ chạy nó ở chế độ nền. Nhưng thật tuyệt khi thấy khi tôi đang phát triển hoặc thử nghiệm mọi thứ cục bộ, tôi
‫đã có nhật ký của mình ngay trên màn hình.
‫Nếu tôi chuyển sang trình duyệt của mình và sau đó truy cập vào localhost, bạn sẽ thấy nó thông báo, 'Nó hoạt động. 'Đó thực sự là phản
‫hồi của máy chủ Apache, không phải máy chủ Nginx.
‫Lưu lượng truy cập thực sự đi qua proxy ngược Nginx.
‫Nó đang lặp lại lưu lượng truy cập vào máy chủ Apache. Máy chủ Apache đang phản hồi với tệp HTML cơ bản
‫mặc định của nó vì chúng tôi không thay đổi bất kỳ điều gì.
‫Sau đó, Nginx đang lặp lại điều đó với tôi.
‫Vì vậy, đó là máy chủ web cơ bản của bạn, cấu hình proxy web.
‫Bạn có thể nói rằng lưu lượng truy cập đã đánh vào cả hai. Chúng thực sự hoạt động thông qua
‫proxy bởi vì
‫proxy thực sự là một màu khác ở đây. Các bản ghi đang được bơm ra đây với màu sắc ngẫu nhiên cho mỗi vùng chứa trong thiết lập của tôi để
‫tôi có thể dễ dàng xem những gì đang xảy ra.
‫Nếu tôi nhấn refresh nhiều lần, bạn sẽ thấy lưu lượng truy cập hiển thị. Sau đó, nó đánh vào proxy đầu tiên và sau đó
‫là máy chủ web phụ trợ.
‫Nếu tôi muốn dừng việc này ở đây, tôi sẽ nhấn Control c để dừng quá trình soạn thư trên màn hình của mình.
‫Tôi thực sự có thể chạy lại nó với -d để chạy nó ở chế độ nền.
‫Bạn có thể thấy ở đây rằng tôi có thể làm mới nó và nó vẫn ở đó. Tôi có thể thực hiện một trình docker soạn nhật ký để xem cùng một đầu ra của các nhật
‫ký mà tôi đã thấy cách đây một thời gian.
‫Rất nhiều lệnh mà bạn có thể quen dùng trong Docker cũng có trong Docker Compose. Thực sự những gì Soạn
‫đang làm là nó đang nói chuyện với API Docker
‫trong nền thay mặt cho Docker CLI. Nó giống như một sự thay thế cho Docker CLI vẫn đang nói chuyện
‫với API máy chủ Docker trong phần phụ trợ.
‫Tất nhiên, sự trợ giúp tuyệt vời ở đây, trợ giúp soạn thảo docker, chỉ cho tôi tất cả các lệnh mà tôi có thể chạy.
‫Bạn sẽ thấy rất nhiều trong số này trông thực sự quen thuộc vì chúng tương đương
‫với lệnh docker chỉ sử dụng ngữ cảnh cấu hình của tệp soạn thảo.
‫Tôi muốn làm sạch tất cả những thứ này vì chúng vẫn đang chạy. Tôi có thể thực hiện một trình soạn thảo ps do docker tại đây, điều này sẽ cho tôi thấy rằng
‫cả hai vùng chứa của tôi đều đang chạy.
‫Tôi có thể thực hiện một công cụ soạn thư hàng đầu để thực sự liệt kê tất cả các dịch vụ đang chạy bên trong chúng ở một
‫đầu ra có định dạng đẹp.
‫Điều đó khá tuyệt.
‫Sau đó, cuối cùng, tôi có thể thực hiện soạn nhạc docker để dừng và dọn dẹp nội dung mà tôi vừa mới bắt đầu.
‫Bạn sẽ thấy rằng nó cho tôi biết nó đã làm gì ở đó. Đã dọn dẹp tất cả.
‫Vì vậy, tuyệt vời.
‫Đây chỉ là một chút hương vị.
‫Chúng tôi sẽ sử dụng Docker Compose rất nhiều trong suốt phần còn lại của khóa học này
‫cho công cụ thử nghiệm và phát triển cục bộ. Sau đó, chúng tôi sẽ tiếp tục sử dụng các tệp Docker Compose khi chúng
‫tôi chuyển sang các mối quan tâm về sản xuất về cách chúng tôi triển khai các môi trường phức tạp với một tệp YAML đơn giản.