[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à
Mục Lục Dịch 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 images
và docker 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 --format
bạ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ư ps
và images
bạ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 biểu tượng không hiển thị trên màn hình trong Windows 11/10
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ị. upper
và lower
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 14882782022-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 SIZEede20431e41f caddy 40.4MBe5179b119094 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 : Một cách công nghệ cao để mở khóa cửa của bạn
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 (> =)).
Có and
, or
và not
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