Làm thế nào để sử dụng docker trong cmd?
Khi tạo bộ chứa Docker, mục tiêu chung là bất kỳ ai cũng có thể chỉ cần thực thi $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba91 và khởi chạy bộ chứa. Trong bài viết hôm nay, chúng ta sẽ khám phá hai hướng dẫn chính của $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92 cho phép chúng ta làm điều đó. Hãy khám phá sự khác biệt giữa các hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 và $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 Show
Nhìn bề ngoài, các lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 và $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 có vẻ như chúng thực hiện cùng một chức năng. Tuy nhiên, khi tìm hiểu sâu hơn, bạn sẽ dễ dàng nhận thấy rằng hai hướng dẫn này thực hiện các tác vụ hoàn toàn khác nhau ApacheBench $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92Để giúp làm ví dụ, chúng tôi sẽ tạo một bộ chứa Docker chỉ đơn giản là thực thi tiện ích ApacheBench Trong các bài viết trước, chúng tôi đã khám phá ra tính đơn giản và hữu ích của công cụ kiểm tra tải ApacheBench. Tuy nhiên, loại tiện ích dòng lệnh này nói chung không phải là loại ứng dụng sẽ "Dockerize. " Việc sử dụng chung Docker tập trung nhiều hơn vào việc tạo dịch vụ thay vì các công cụ thực thi đơn lẻ như ApacheBench Lý do chính đằng sau điều này là do các bộ chứa Docker thông thường không được xây dựng để chấp nhận các tham số bổ sung khi khởi chạy. Điều này khiến việc sử dụng công cụ dòng lệnh trong vùng chứa trở nên khó khăn Hãy xem điều này hoạt động bằng cách tạo một bộ chứa Docker có thể được sử dụng để thực thi ApacheBench đối với bất kỳ trang web nào FROM ubuntu:latest RUN apt-get update && \ apt-get install -y apache2-utils && \ rm -rf /var/lib/apt/lists/* CMD ab Trong $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92, chúng tôi chỉ đơn giản sử dụng hình ảnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba99 làm hình ảnh vùng chứa cơ sở, cài đặt gói $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba900, sau đó xác định rằng lệnh cho vùng chứa này là lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 Do bộ chứa Docker này được lên kế hoạch sử dụng làm bộ thực thi cho lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901, nên việc đặt giá trị lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 thành lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 là điều hợp lý. Tuy nhiên, nếu chúng ta chạy vùng chứa này, chúng ta sẽ bắt đầu thấy một sự khác biệt thú vị giữa vùng chứa này và các vùng chứa ứng dụng khác Tuy nhiên, trước khi chúng tôi có thể chạy vùng chứa này, trước tiên chúng tôi cần xây dựng nó. Chúng ta có thể làm như vậy với lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba905 $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba9 Khi xây dựng vùng chứa này, tôi đã gắn thẻ vùng chứa với tên là $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901. Điều này có nghĩa là chúng ta có thể chỉ cần khởi chạy vùng chứa này thông qua tên $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba90 Khi chúng tôi chạy bộ chứa $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901, chúng tôi nhận được lỗi từ lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 cũng như chi tiết sử dụng. Lý do cho điều này là chúng tôi đã xác định lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 cho lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 mà không chỉ định bất kỳ cờ hoặc máy chủ đích nào để kiểm tra tải đối với. Lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 này được sử dụng để xác định lệnh mà vùng chứa sẽ thực thi khi khởi chạy. Vì chúng tôi đã xác định rằng đó là lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 không có đối số, nên nó đã thực thi lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901 mà không có đối số Tuy nhiên, giống như hầu hết các công cụ dòng lệnh, đó đơn giản không phải là cách hoạt động của $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901. Với $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901, bạn cần chỉ định $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba997 nào bạn muốn kiểm tra Những gì chúng tôi có thể làm để thực hiện công việc này là ghi đè hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 khi chúng tôi khởi chạy vùng chứa. Chúng ta có thể làm điều này bằng cách thêm lệnh và đối số mà chúng ta muốn thực thi vào cuối lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba999 $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba99 Khi chúng tôi thêm $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba930 vào cuối lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba999 của mình, chúng tôi có thể ghi đè lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 và thực hiện thành công lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901. Tuy nhiên, trong khi chúng tôi đã thành công, quá trình ghi đè hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 này khá rắc rối Đăng ký tài khoản Codeship miễn phí ĐIỂM VÀOĐây là nơi hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 tỏa sáng. Lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 hoạt động rất giống với lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 ở chỗ nó được sử dụng để chỉ định lệnh được thực thi khi vùng chứa được khởi động. Tuy nhiên, điểm khác biệt là $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 không cho phép bạn ghi đè lệnh Thay vào đó, bất kỳ thứ gì được thêm vào cuối lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba999 đều được thêm vào lệnh. Để hiểu điều này tốt hơn, hãy tiếp tục và thay đổi hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 của chúng tôi thành hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 Sau khi chỉnh sửa $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92, chúng ta sẽ cần xây dựng lại hình ảnh một lần nữa $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba97 Bây giờ, chúng ta có thể chạy lại bộ chứa $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901; $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92 Như ví dụ trên cho thấy, về cơ bản, chúng ta đã biến vùng chứa của mình thành tệp thực thi. Nếu muốn, chúng ta có thể thêm các cờ bổ sung vào lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 để đơn giản hóa một công cụ dòng lệnh phức tạp thành bộ chứa Docker một đối số Hãy cẩn thận với cú phápMột điều quan trọng cần nêu ra về lệnh ________ 04 là cú pháp rất quan trọng. Về mặt kỹ thuật, $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 hỗ trợ cả cú pháp $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba920 và cú pháp $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba921. Tuy nhiên, trong khi cả hai đều được hỗ trợ, chúng có hai ý nghĩa khác nhau và thay đổi cách thức hoạt động của $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 Hãy thay đổi $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92 của chúng ta để phù hợp với cú pháp này và xem cách nó thay đổi hành vi vùng chứa của chúng ta $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba90 Với những thay đổi đã thực hiện, hãy xây dựng vùng chứa $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba91 Với vùng chứa được xây dựng, hãy chạy lại vùng chứa đó bằng các tùy chọn tương tự như trước đây $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92 Có vẻ như chúng ta đang quay lại hành vi tương tự như hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93. Tuy nhiên, nếu chúng ta cố ghi đè lên $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94, chúng ta sẽ thấy hành vi khác so với khi chúng ta ghi đè hướng dẫn $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba90 Với lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94, không thể ghi đè lệnh trong quá trình thực thi lệnh $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba999 giống như với $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93. Điều này làm nổi bật một cách sử dụng khác của $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94, như một phương pháp đảm bảo rằng một lệnh cụ thể được thực thi khi vùng chứa được đề cập được khởi động bất kể nỗ lực ghi đè lên $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94 Tóm lượcTrong bài viết này, chúng tôi đã đề cập khá nhiều về $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba93 và $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba94; . Để xem một số ví dụ này, bạn có thể xem tài liệu tham khảo $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba92 của Docker Tuy nhiên, với ví dụ trên, giờ đây chúng ta có một cách để "Dockerize" các công cụ dòng lệnh đơn giản như $ docker build -t ab . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM ubuntu:latest ---> ebcd9d4fca80 Step 2/3 : RUN apt-get update && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* ---> Using cache ---> d9304ff09c98 Step 3/3 : CMD ab ---> Using cache ---> ecfc71e7fba9 Successfully built ecfc71e7fba901, mở ra một vài trường hợp sử dụng thú vị. Nếu bạn có một cái, hãy chia sẻ nó trong phần bình luận bên dưới Làm cách nào để sử dụng CMD trong tệp docker?Chỉ có thể có một lệnh CMD trong Dockerfile . Nếu bạn liệt kê nhiều CMD thì chỉ CMD cuối cùng có hiệu lực. Mục đích chính của CMD là cung cấp các giá trị mặc định cho vùng chứa đang thực thi.
Docker CMD hoạt động như thế nào?Docker CMD xác định tệp thực thi mặc định của hình ảnh Docker . Bạn có thể chạy hình ảnh này làm cơ sở của vùng chứa mà không cần thêm đối số dòng lệnh. Trong trường hợp đó, vùng chứa sẽ chạy quy trình được chỉ định bởi lệnh CMD.
Cách khởi động docker trong lệnh WindowsSau khi tải xuống Docker Desktop Installer. exe, hãy chạy lệnh sau trong terminal để cài đặt Docker Desktop. . $"Trình cài đặt máy tính để bàn Docker. exe" cài đặt Bắt đầu quá trình 'Trình cài đặt Docker Desktop. exe' -Chờ cài đặt $ net localgroup docker-users |