Docker Tutorial Series — Part 2 — Các Lệnh Docker Cơ Bản - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Chủ Nhật, 10 tháng 2, 2019

Docker Tutorial Series — Part 2 — Các Lệnh Docker Cơ Bản


Đây là bài thứ 2 trong loạt bài hướng dẫn về sử dụng, xây dựng docker do manhtuong biên soạn và chỉnh sửa cập nhập thường xuyên





Bây giờ bạn đã cài đặt Docker, đã đến lúc thử các lệnh cơ bản mà bạn có thể thực hiện thông qua chương trình máy khách docker.





Nhớ lại rằng bộ công cụ Docker bao gồm:





  1. Docker Daemon
  2. Docker Client
  3. Docker Hub




Bây giờ, khi chúng ta làm việc với máy khách docker, điều đang xảy ra là các lệnh đang được gửi đến Docker Daemon, sau đó diễn giải lệnh và thực thi nó cho bạn.





Máy khách docker có thể hiểu một số lệnh. Và trong bước thực hành này, chúng tôi sẽ xem xét các lệnh khác nhau mà bạn sẽ sử dụng chính trong khi chạy docker.





docker help




Điều này sẽ cung cấp cho bạn một danh sách đầy đủ các lệnh mà máy khách docker có thể hiểu. Hãy dành thời gian để trải qua điều này. Hầu hết các lệnh là tự giải thích và là những lệnh điển hình mà bạn sẽ sử dụng trong khi xử lý các container.





Tại bất kỳ thời điểm nào, nếu bạn cần thêm trợ giúp về bất kỳ lệnh nào, bạn có thể nhận được điều đó qua lệnh










docker COMMAND --help




Danh sách lệnh ban đầu





Trong phần tiếp theo tôi sẽ đưa ra các lệnh khác nhau và bạn nên thử từng lệnh đơn. Trước khi bạn thử bất kỳ thứ gì trong số đó, hãy đảm bảo rằng Docker đã được khởi động. Bạn có thể truy cập thiết bị đầu cuối và đưa ra lệnh sau.





docker version








Điều này sẽ cho bạn thấy phiên bản docker hiện tại bạn đang chạy





Hãy hiểu những gì chúng ta đang làm ở đây bây giờ. Chúng tôi đang sử dụng máy Windows và chúng tôi muốn chạy một số lệnh / tiện ích Unix để làm quen với chúng.





Vì vậy, đây là những gì các bước trông giống như với Docker bây giờ:





  1. Có một hình ảnh Docker hữu ích được gọi là busybox (giống như chúng ta đã có hello-world) mà ai đó đã tạo cho Docker.
  2. Chúng tôi sẽ sử dụng lệnh chạy docker để chạy một container tức là tạo một thể hiện của hình ảnh đó.
  3. Bằng cách chạy, những gì chúng ta muốn làm là đi vào bên trong container đó và chạy một vài lệnh ở đó.









Hãy để chúng tôi kiểm tra một số bước tức là các lệnh docker mà chúng tôi sẽ chạy - không phải tất cả đều cần thiết nhưng chúng tôi đang làm điều này để giúp bạn làm quen với các lệnh. Chúng tôi sẽ xem xét một số các lệnh này chi tiết hơn trong các phiên tiếp theo.





docker search busybox




Lệnh này sẽ tìm kiếm đăng ký Docker trực tuyến cho một image có tên busybox. Trên máy của tôi, đầu ra được hiển thị như sau (chỉ một vài hàng trên cùng được hiển thị):













Hãy để tôi giải thích đầu ra ở đây, bằng cách chú ý đến các cột:





  1. Cột đầu tiên là NAME và nó cung cấp cho bạn tên của Image Docker.
  2. Cột thứ hai là MÔ TẢ và rõ ràng điều đó có nghĩa là gì.
  3. Cột tiếp theo là Stars và nếu bạn nhận thấy danh sách các hình ảnh phù hợp với thuật ngữ tìm kiếm Docker đã được liệt kê theo thứ tự giảm dần của số người đã tham gia dự án. Đây là một chỉ số rất hữu ích về mức độ phổ biến / chính xác của
    Image . Thông thường nếu bị nhầm lẫn giữa hình ảnh Docker đi cùng, tôi thường chọn bức ảnh có nhiều Stars nhất.




Cột đầu tiên, để nhắc lại, là TÊN của hình ảnh Docker. Đây là một tên duy nhất và bạn phải sử dụng tên này cho một số lệnh được đưa ra dưới đây.





Vì vậy, hãy chắc chắn với tên Image busybox và bây giờ muốn tạo một thể hiện (Container) của hình ảnh này. Để làm điều đó, tất cả những gì chúng ta cần làm là sử dụng docker runcommand như được đưa ra dưới đây:





docker run -t -i busybox




Lệnh run thực hiện một cái gì đó thú vị và điều này sẽ giúp bạn hiểu kiến ​​trúc Docker, mà chúng ta đã thấy trước đó. Lệnh run thực hiện như sau:





  1. Nó kiểm tra nếu bạn đã có một hình ảnh busybox trong kho lưu trữ cục bộ của bạn.
  2. Nếu nó không tìm thấy điều đó (sẽ là trường hợp đầu tiên), nó sẽ kéo hình ảnh từ trung tâm Docker. Kéo hình ảnh tương tự như tải xuống và có thể mất một lúc để làm điều đó tùy thuộc vào kết nối internet của bạn.
  3. Khi nó được kéo thành công, nó có mặt trong kho lưu trữ cục bộ của bạn và do đó nó có thể tạo một thùng chứa dựa trên hình ảnh này.
  4. Chúng tôi đã cung cấp -i -t làm tham số cho lệnh chạy và điều này có nghĩa là nó tương tác và đính kèm đầu vào tty.




Lưu ý: Nếu hình ảnh có mặt cục bộ, nó sẽ trực tiếp chạy container cho bạn.





Khi khởi chạy thành công container, bạn sẽ được dẫn vào shell bash cho busybox. Để đơn giản cho người dùng Windows, chúng tôi hiện đã đăng nhập vào thùng chứa busybox và đang ở dấu nhắc lệnh, như được hiển thị bên dưới:









Bạn có thể chạy một vài lệnh như dưới đây:









Lưu ý từ dấu nhắc rằng bạn đang ở trong container. Bạn có thể thoát khỏi container bằng cách đưa ra lệnh exit









Khi bạn đưa ra lệnh thoát, container đã ngừng chạy. Để xác minh điều đó, bạn có thể đưa ra một lệnh khác như được đưa ra dưới đây:





docker ps








Điều này cung cấp cho bạn một danh sách tất cả các container đang chạy. Bạn sẽ nhận thấy từ đầu ra rằng không có container đang chạy.





Nếu bạn muốn tìm ra các container đang chạy trước đó nhưng không ở trạng thái kết thúc, bạn có thể sử dụng tham số -all cho lệnh ps docker. 





docker ps -all




Tại thời điểm này, nếu bạn muốn biết những hình ảnh nào đã có trên thiết lập docker của bạn cục bộ, hãy thử lệnh sau:





docker image




Lưu ý các cột mà đầu ra đưa ra (2 cột quan trọng được đưa ra dưới đây): REPOSITORY và TAG





Cột REPOSITORY là hiển nhiên vì nó là tên của chính Image. TAG rất quan trọng, bạn sẽ thấy rằng giá trị TAG được đề cập là mới nhất. Nhưng không có dấu hiệu nào được đưa ra bởi chúng tôi về điều đó.
Thực tế là khi chúng tôi đưa ra lệnh sau trước đó:





docker run -t -i busybox





Chúng ta chỉ chỉ định tên và theo mặc định chỉ tên IMAGE được chỉ định, sau đó nó sẽ nhận được hình ảnh mới nhất theo mặc định. Giá trị tag 'latest' là loại được sử dụng ngầm bởi máy khách Docker trong trường hợp không có giá trị thẻ rõ ràng do bạn cung cấp.

Nói cách khác, bạn có thể đã chỉ định nó là:





docker run -t -i busybox:latest




Tương tự, có khả năng rõ ràng là sẽ có nhiều phiên bản của bất kỳ Image nào có trong Docker Hub. Chúng ta sẽ thấy tất cả những điều đó trong một thời gian, nhưng bây giờ, hãy nhớ rằng có thể nói rằng có các phiên bản sau của busybox:





  1. Image Name : busybox , Version TAG : 1.0
  2. Image Name : busybox, Version TAG : 2.0
  3. Image Name : busybox, Version TAG : 3.0




Chúng tôi có thể đề cập đến phiên bản TAG khi cần:





$ docker run -t -i busybox:1.0
$ docker run -t -i busybox:2.0




Docker container





Khi bạn thực thi lệnh ps docker, bạn nhận thấy rằng không có container nào đang chạy. Điều này là do bạn đã thoát ra khỏi container. Điều đó có nghĩa là container chỉ tồn tại miễn là tiến trình mẹ của nó đang chạy.





Bây giờ, chúng ta hãy thực hiện một lệnh docker ps -all. Điều này sẽ cho bạn thấy container đã được bạn khởi chạy vài phút trước. Ví dụ trên hệ thống của tôi, tôi thấy như sau:









Lưu ý các cột sau:





  • CONTAINER_ID: ID duy nhất cho vùng chứa đã được khởi chạy.
  • IMAGE: Đây là IMAGE mà bạn đã khởi chạy tức là busybox
  • COMMAND : Thứ quan trọng ở đây. Đây là lệnh mặc định được thực thi khi container được khởi chạy. Nếu bạn nhớ lại, khi container dựa trên hình ảnh busybox được khởi chạy, nó sẽ dẫn bạn đến Unix Prompt tức là Shell đã được khởi chạy. Và đó chính xác là những gì chương trình trong /bin/sh làm. Điều này sẽ cung cấp cho bạn một gợi ý rằng trong trường hợp bạn muốn đóng gói Máy chủ của riêng mình trong Image Docker, lệnh mặc định của bạn ở đây thường là lệnh khởi chạy Máy chủ và đặt nó ở chế độ listen




Khởi chạy lại một container





Để bắt đầu một container bị dừng, bạn có thể sử dụng lệnh start docker. Tất cả những gì bạn cần làm là cung cấp ID Container cho lệnh start docker.





Để lấy ID Container chúng ta dùng lệnh docker ps -all. và kết quả chúng ta có được như bên dưới













Tôi ghi lại CONTAINER_ID tức là cfb007d616b9 và sau đó đưa ra lệnh sau:





docker start ab0e37214358




Lưu ý: thêm tham số -i để đi vào chế độ tương tác. Bạn sẽ thấy rằng nếu mọi thứ đều ổn, Container đã được khởi động lại và bạn đã quay lại lần nữa tại Lời nhắc, như được đưa ra dưới đây:









Để thoát chúng ta dùng lệnh exit để thoát hẳn ra bên ngoài và tắt container





Chúng ta khi chạy mà không có tham số -i chúng ta chỉ nhận lại được đúng ID của container vậy chuyện gì đã xảy ra? nó chạy cái gì?





Điều vừa xảy ra là Container đã được khởi chạy và tất cả các ứng dụng bên trong docker cũng đã chạy theo





Dùng lệnh sau để kiểm tra các container đang chạy hiện tại (lệnh nên quen thuộc với bạn bây giờ):





docker ps








Điều này cung cấp cho chúng tôi đầu ra mà CONTAINER đang chạy (Kiểm tra cột STATUS. Bạn sẽ thấy rằng nó báo là Up!)





Chúng ta có thể đính kèm vào một Container đang chạy thông qua lệnh attach của docker. 





docker attach ab0e37214358





Điều này sẽ đưa bạn trở lại Prompt, tức là bạn đang ở trong hộp chứa busybox. Nhập exit để thoát khỏi container và sau đó thử lệnh ps docker. Sẽ không có container nào đang chạy.






Lưu ý: Nếu bạn muốn dừng một container đang chạy, bạn có thể dùng lệnh





docker stop  ContainerId 




Bạn không cần phải luôn cung cấp giá trị CONTAINER_ID đầy đủ. Nhập một vài chữ cái từ đầu CONTAINER_ID và nó sẽ hoạt động.


Không có nhận xét nào:

Đăng nhận xét

Post Top Ad