Lệnh docker info là một trong những lệnh cơ bản và quan trọng của Docker, cung cấp thông tin chi tiết về trạng thái và cấu hình của Docker engine, bao gồm cả thông tin về hệ thống và các thành phần khác như container, image, volume, và network. Đây là một công cụ hữu ích để kiểm tra và giám sát môi trường Docker của bạn, đặc biệt là khi cần chẩn đoán các vấn đề hoặc thu thập thông tin phục vụ việc quản trị.

Cú pháp lệnh

docker info

Khi chạy lệnh này, bạn sẽ nhận được một bản báo cáo chi tiết về Docker daemon (Docker engine) và cấu hình của hệ thống Docker. Lệnh docker info không yêu cầu bất kỳ tham số nào kèm theo và có thể chạy mà không cần quyền root, nhưng bạn cần có quyền quản trị Docker (ví dụ như thuộc nhóm docker trên hệ thống Linux).

Thông tin được cung cấp bởi lệnh docker info

Dưới đây là các thông tin chi tiết mà lệnh docker info có thể cung cấp:

1. Server Information (Thông tin về máy chủ)

  • Containers: Số lượng container trên hệ thống, bao gồm các container đang chạy, đã dừng, và bị tạm dừng.
  • Images: Số lượng Docker image hiện có trong hệ thống.
  • Storage Driver: Thông tin về loại driver được Docker sử dụng để quản lý storage, ví dụ như overlay2, aufs, hoặc devicemapper.
  • Volume: Số lượng volume được tạo và lưu trữ trong hệ thống.
  • Network: Các mạng Docker được tạo trên hệ thống (bridge, host, none, hoặc custom networks).
  • Logging Driver: Driver được Docker sử dụng để ghi lại log của container.
  • Cgroup Driver: Loại cgroup driver được sử dụng để quản lý tài nguyên container (cgroupfs hoặc systemd).
  • Plugins: Danh sách các plugin đang được sử dụng cho storage, network, log, và các chức năng khác.
  • Swarm: Trạng thái của Swarm (cụm container) nếu Docker đang chạy trong chế độ Swarm.
  • Runtimes: Các runtime container đang được hỗ trợ, chẳng hạn như runc.
  • Kernel Version: Phiên bản kernel của hệ điều hành mà Docker đang chạy.
  • Operating System: Tên và phiên bản của hệ điều hành.
  • Architecture: Kiến trúc của hệ thống, ví dụ như x86_64 hoặc arm.
  • Docker Root Dir: Thư mục chính của Docker, nơi Docker lưu trữ dữ liệu (image, container, volume, network).

2. Client Information (Thông tin về client)

  • Debug Mode: Nếu chế độ gỡ lỗi được bật, nó sẽ cung cấp thông tin chi tiết hơn cho quá trình debug.
  • Version: Phiên bản của Docker client mà bạn đang sử dụng.
  • API Version: Phiên bản API mà Docker sử dụng để giao tiếp giữa client và server.
  • Go Version: Phiên bản của Go language dùng để biên dịch Docker.
  • Git Commit: Thông tin commit từ Git tương ứng với phiên bản Docker hiện tại.

Ví dụ kết quả của lệnh docker info

Dưới đây là một ví dụ về kết quả đầu ra của lệnh docker info trên một hệ thống Linux:

Client:
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        55c4c88
 Built:             Tue Mar  2 20:18:46 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      false

Server:
 Containers: 3
  Running: 1
  Paused: 0
  Stopped: 2
 Images: 10
 Server Version: 20.10.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 Kernel Version: 5.8.0-48-generic
 Operating System: Ubuntu 20.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 15.53GiB
 Name: docker-server
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Username: dockeruser
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Các tình huống sử dụng của lệnh docker info

1. Kiểm tra trạng thái của Docker Daemon

Lệnh docker info là cách nhanh chóng để xác minh xem Docker daemon có đang hoạt động chính xác hay không. Bạn có thể xem thông tin chi tiết về số lượng container đang chạy, hệ điều hành, và phiên bản kernel mà Docker đang sử dụng.

2. Xác nhận thông tin cấu hình Docker

Khi bạn cần kiểm tra các thông tin cấu hình chi tiết như loại storage driver, cgroup driver, hoặc logging driver mà Docker đang sử dụng, lệnh này sẽ cung cấp thông tin đó một cách nhanh chóng.

3. Giám sát số lượng container và image

Lệnh docker info cho bạn cái nhìn tổng quan về số lượng container đang chạy, container đã dừng, và số lượng image trong hệ thống. Điều này rất hữu ích để quản lý tài nguyên Docker hiệu quả.

4. Giải quyết vấn đề và gỡ lỗi

Trong quá trình xử lý sự cố hoặc gỡ lỗi Docker, bạn có thể cần biết phiên bản Docker, cấu hình plugin, hay thông tin về các network và volume mà Docker đang quản lý. Lệnh docker info cung cấp tất cả những thông tin này để giúp bạn dễ dàng chẩn đoán và xử lý vấn đề.

Kết luận

Lệnh docker info cung cấp một cái nhìn toàn diện về trạng thái của Docker engine, từ cấu hình hệ thống cho đến thông tin chi tiết về các container, image, volume và network. Đây là một công cụ mạnh mẽ và dễ sử dụng, đặc biệt hữu ích cho việc quản lý Docker và xử lý sự cố trong các môi trường phức tạp. Nắm vững lệnh docker info sẽ giúp bạn quản trị Docker hiệu quả hơn và tiết kiệm thời gian trong việc kiểm tra và giám sát hệ thống.