Làm thế nào để trở thành một người dùng Docker CLI Power với “–format” và

Lam the nao de tro thanh mot nguoi dung Docker
Bình chọn post

[ad_1]

Việc sử dụng Docker CLI để liệt kê và kiểm tra các tài nguyên trên hệ thống của bạn thường tạo ra kết quả dài dòng có thể ẩn các chi tiết quan trọng. Docker hỗ trợ cú pháp tạo mẫu của Go kết hợp với --format cờ để cung cấp cho bạn quyền kiểm soát những gì được hiển thị.

Học cách sử dụng các mẫu có thể biến bạn thành một người dùng thành thạo Docker CLI. Chúng cho phép bạn chọn và biến đổi các đầu ra lệnh một cách hiệu quả để tạo ra các khung nhìn bạn cần. Điều này dẫn đến trải nghiệm CLI hiệu quả hơn và tốn ít thời gian hơn khi quét các dòng bảng điều khiển dài.

Bạn Đang Xem: Làm thế nào để trở thành một người dùng Docker CLI Power với “–format” và

Lệnh nào hỗ trợ “–format”?

Các --format cờ được sử dụng phổ biến nhất hỗ trợ docker các lệnh. Bạn có thể sử dụng nó với docker inspect và các lệnh tạo danh sách các mục, chẳng hạn như docker ps, docker imagesdocker volumes.

Khi bạn bao gồm --format cờ, Docker sẽ gửi đầu ra của lệnh thông qua chuỗi mẫu Go mà bạn cung cấp. Bạn có thể sử dụng các tính năng tạo khuôn mẫu do Go cung cấp để sử dụng trình giữ chỗ do Docker thiết lập. Những điều này cung cấp cho bạn quyền truy cập vào dữ liệu được CLI tìm nạp.

Một ví dụ cơ bản

Đang chạy docker inspect trên một vùng chứa hiển thị một đối tượng JSON dài thường làm tràn cửa sổ đầu cuối của bạn. Sử dụng --formatbạn có thể lấy ra các phần cụ thể của dữ liệu mà bạn quan tâm. Dưới đây là ví dụ cho thấy trạng thái của vùng chứa, PID và thời gian bắt đầu:

~$ docker inspect 94a8d1315315 --format '{{.State.Status}} (PID: {{.State.Pid}}) {{.State.StartedAt}}'
running (PID: 1488278) 2022-03-22T20:45:58.614115689Z

Việc phát hiện các giá trị mục tiêu bằng cách sử dụng mẫu dễ dàng hơn nhiều so với khi dò tìm thủ công qua JSON thô.

Truy cập các giá trị đầu ra

Các phần động của mẫu của bạn được bao bọc trong dấu ngoặc đơn kép. Bạn có thể tham chiếu các giá trị trong đầu ra của lệnh Docker bằng cách sử dụng {{.Field}} cú pháp. Field phải là tên của một thuộc tính trong biểu diễn JSON của đầu ra đó. Các trường lồng nhau được chọn bằng cú pháp chuỗi tương tự như các quyền truy cập thuộc tính trong JavaScript, .Field.NestedValue.

Bạn có thể tìm ra trường nào có sẵn bằng cách xem đầu ra thô của lệnh. docker inspect hiển thị JSON theo mặc định; điều này có thể được ánh xạ trực tiếp tới trình giữ chỗ của cú pháp mẫu. Đối với các lệnh khác như psimagesbạn có thể truy xuất cấu trúc JSON cơ bản bằng cách sử dụng một mẫu đặc biệt:

docker ps --format '{{json .}}`

Các json hàm hiển thị phiên bản JSON thô của dữ liệu bạn cung cấp.

Biến đổi đơn giản

Xem Thêm : Các phím tắt tốt nhất trên iPad

Các hàm chuyển đổi cung cấp một cách thuận tiện để thao tác các giá trị. upperlower chuyển đổi chuỗi thành chữ hoa và chữ thường tương ứng. Bạn có thể áp dụng cách viết hoa tiêu đề cho một chuỗi với title. Các hàm được chèn vào mẫu trước giá trị mà chúng hoạt động:

~$ docker inspect 94a8d1315315 --format '{{upper .State.Status}} (PID: {{.State.Pid}})'
RUNNING (PID: 1488278)

Nếu bạn muốn thêm một ký tự dòng mới giữa các giá trị, hãy sử dụng println hàm số:

~$ docker inspect 94a8d1315315 --format '{{.State.Status}} {{.State.Pid}}{{println}}{{.State.StartedAt}}'
running 1488278
2022-03-22T20:45:58.614115689Z

Làm việc với mảng

Cú pháp mẫu có hỗ trợ tích hợp để lặp lại các phần tử của một mảng. Các range hàm lặp qua các giá trị của mảng và đặt . biến cho từng cái:

~$ docker inspect 94a8d1315315 --format '{{range .Mounts}}{{println .Destination}}{{end}}'
/config
/data

Bạn có thể kết hợp các phần tử mảng với nhau với join hàm số:

~$ docker inspect 94a8d1315315 --format '{{join .Config.Cmd " "}}'
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile

Điều này tạo ra một chuỗi kết hợp từng giá trị trong mảng. Các phần tử được nối với nhau bằng văn bản được chỉ định làm tham số thứ hai của đối số.

Lập bảng kết quả

Nhiều lệnh Docker mặc định hiển thị dữ liệu trong bố cục bảng mà con người có thể đọc được. Bạn có thể tạo bảng của riêng mình bằng cách sử dụng table thành phần mẫu.

Sử dụng t ký tự để tách các trường dữ liệu thành các cột trong bảng. Mẫu sẽ được thực thi cho từng mục có trong đầu ra của lệnh Docker CLI. Các cột trong bảng được định kích thước tự động để phù hợp với độ dài nội dung của chúng.

~$ docker images --format 'table {{.ID}}t{{.Tag}}t{{.Size}}'
IMAGE ID       TAG          SIZE
ede20431e41f   caddy        40.4MB
e5179b119094   <none>       40.4MB

Docker tự động bao gồm các tiêu đề cột thích hợp cho các trường trong mẫu của bạn.

Định dạng có điều kiện

Các mẫu cũng hỗ trợ các câu lệnh “if” có điều kiện. Bạn có thể tùy chỉnh động đầu ra của lệnh bằng cách hiển thị một giá trị khác dựa trên điều kiện:

~$ docker ps --format '{{.ID}} {{if eq .State "running"}}Alive{{else}}Not Running{{end}}'
94a8d1315315 Alive

Xem Thêm : Cách bật Macro trong Microsoft Excel

Mẫu này hiển thị một trong hai Alive hoặc Not Running tùy thuộc vào mỗi container của State trường được đặt thành running. Các if theo sau là giá trị được hiển thị khi điều kiện khớp. Một tùy chọn else khối có thể được xâu chuỗi sau đó. Điều kiện được chấm dứt bởi {{end}} từ khóa.

Mẫu cờ vây hiểu một số toán tử so sánh. Các eq hiển thị ở trên kiểm tra xem giá trị đầu tiên có bằng giá trị thứ hai hay không. Ngoài ra còn có các tùy chọn sau:

  • ne – So sánh “không bằng”.
  • lt – So sánh “nhỏ hơn” (<)).
  • lte – So sánh “nhỏ hơn hoặc bằng” (<=)).
  • gt – So sánh “lớn hơn” (>)).
  • gte – So sánh “lớn hơn hoặc bằng” (> =)).

and, ornot từ khóa cũng vậy để xâu chuỗi các điều kiện lại với nhau thành các biểu thức phức tạp.

Định dạng nâng cao bằng Jq

Các --format cờ chủ yếu được sử dụng để tạo các chuỗi đầu ra mà con người có thể đọc được. Nếu bạn cảm thấy thoải mái hơn khi kiểm tra JSON thô, bạn có thể sử dụng các công cụ khác như jq để thao tác đầu ra của Docker trực tiếp hơn. Điều này có thể hữu ích khi bạn muốn tạo các truy vấn nâng cao hơn so với các mẫu Go chỉ có thể cung cấp.

docker inspect sản xuất JSON theo mặc định để đầu ra của nó có thể được chuyển thẳng vào jq:

~$ docker inspect 94a8d1315315 | jq .[0].Config.Cmd
[
  "caddy",
  "run",
  "--config",
  "/etc/caddy/Caddyfile",
  "--adapter",
  "caddyfile"
]

Đầu ra từ các lệnh khác phải được chuyển đổi thành JSON thô của nó với --format trước khi nó được chuyển đến jq:

~$ docker images --format '{{json .}}' | jq .Size
"968MB"
"946MB"
"40.1MB"

Jq cung cấp cú pháp riêng để chọn, thao tác và định dạng dữ liệu JSON. Các nguyên tắc cơ bản tương tự như trình giữ chỗ mẫu của Go. Các trường được tham chiếu bằng cách sử dụng .Field cú pháp. Có hỗ trợ để chọn các phần tử mảng bằng cách sử dụng .[index] ký hiệu.

Sự kết luận

Docker CLI trở nên mạnh mẽ hơn khi bạn có thể xem và thao tác có chọn lọc dữ liệu đầu ra. Đi các mẫu với --format cờ cung cấp một cách để tạo giao diện tùy chỉnh hợp lý hóa việc quản lý các vùng chứa của bạn.

Trong vài trường hợp, --format vẫn có thể không cung cấp sức mạnh và tính linh hoạt mà bạn cần. Piping các lệnh Docker đến các công cụ bên ngoài như jq cung cấp một cách khác để nhanh chóng thẩm vấn cài đặt của bạn và hiển thị dữ liệu của nó trong các hệ thống khác.


[ad_2]

Nguồn: https://maytinhvang.com
Danh mục: TIN HỌC

Bài viết liên quan

0903064855
chat-active-icon