Trang chủ Thủ Thuật 10 công cụ bổ sung Docker

10 công cụ bổ sung Docker

0
39
The Traefik web UI

10 công cụ bổ sung Docker

6dc7b5a0

Docker là nền tảng container hóa được biết đến nhiều nhất nhưng nó không tồn tại riêng lẻ. Toàn bộ hệ sinh thái gồm các công cụ bổ sung và các dự án phụ đã hình thành xung quanh sự chuyển dịch sang các thùng chứa.

Dưới đây là tổng hợp 10 trình phân tích, lập chỉ mục và điều phối mã nguồn mở giúp Docker trở nên thuận tiện và hữu ích hơn nữa. Cho dù bạn vẫn còn sớm trong hành trình Docker của mình hay bạn là một học viên dày dạn kinh nghiệm sử dụng công nghệ trong sản xuất, bạn có thể tìm thấy thứ gì đó đáng giá ở đây cùng với dự án tiếp theo của mình.

Docker Soạn

Docker Compose là công cụ duy nhất trong danh sách này thực sự là một phần của Docker. Soạn là một cách dễ tiếp cận để tạo “ngăn xếp” các vùng chứa Docker mà bạn có thể quản lý đồng thời.

Docker CLI tiêu chuẩn cho phép bạn tương tác với các vùng chứa riêng lẻ. Soạn cung cấp một giao diện tương tự để làm việc với các vùng chứa tổng hợp. Điều này giúp bạn có thể dễ dàng kiểm soát các hệ thống yêu cầu nhiều vùng chứa, chẳng hạn như máy chủ ứng dụng, cơ sở dữ liệu và lớp bộ nhớ đệm. Bạn xác định các thành phần này dưới dạng các dịch vụ trong docker-compose.yml , sau đó sử dụng docker-compose để bắt đầu tất cả chúng cùng nhau:

 phiên bản : 3
dịch vụ :
  ứng dụng :
    image : example.com/example-app:latest
    các cổng :
- 80:80
  cơ sở dữ liệu :
    hình ảnh : mysql: mới nhất
    phơi bày :
- 3306
  bộ nhớ đệm :
    hình ảnh : redis: mới nhất
    phơi bày :
- 6379

Chạy docker-compose up -d sẽ tạo ra ba vùng chứa, mỗi vùng chứa một cho các dịch vụ ứng dụng, cơ sở dữ liệu và bộ nhớ cache. Chúng sẽ tự động được liên kết với nhau. Điều này dễ quản lý hơn nhiều so với việc lặp lại docker run nhiều lần.

Người khuân vác

Portainer là một GUI để cài đặt Docker của bạn. Đó là một công cụ dựa trên trình duyệt cung cấp một giao diện hoàn chỉnh để xem, tạo và định cấu hình vùng chứa của bạn. Bạn cũng có thể tương tác với các loại đối tượng Docker khác như hình ảnh, mạng và khối lượng.

Portainer's dashboard

Portainer được triển khai dưới dạng hình ảnh Docker của riêng nó:

docker run -d -p 9000: 9000 --name = portainer 
    -v /var/run/docker.sock:/var/run/docker.sock 
    -v portainer_data: / data 
    portainer / portainer-ce
Quảng cáo

Điều này thiết lập một phiên bản Portainer mà bạn có thể truy cập tại localhost:9000 . Nó hoạt động bằng cách gắn ổ cắm Docker của máy chủ của bạn vào vùng chứa Portainer. Do đó, Portainer có thể sử dụng socket để quản lý các container đang chạy trên máy chủ của bạn.

Thống đốc

Kubernetes là một nền tảng điều phối vùng chứa phân tán. Đó là một cách phổ biến để chuyển khối lượng công việc được Tài liệu hóa vào môi trường sản xuất. Một cụm Kubernetes bao gồm nhiều Nút (máy vật lý), mỗi nút đủ điều kiện để lưu trữ các cá thể vùng chứa.

Kubernetes cung cấp cho bạn khả năng mở rộng và phân phối đơn giản. Trong khi Docker đơn giản hiển thị các vùng chứa riêng lẻ trên một máy duy nhất, Kubernetes quản lý nhiều vùng chứa chạy liền mạch trên một số Nút.

Vì Kubernetes tương thích với OCI, bạn có thể triển khai các hình ảnh Docker hiện có vào cụm của mình:

 apiVersion : apps / v1
loại : Triển khai
đặc điểm kỹ thuật :
  bản sao : 3
  bộ chọn :
    matchLabels :
      ứng dụng : ví dụ
  mẫu :
    siêu dữ liệu :
      nhãn :
        ứng dụng : ví dụ
    đặc điểm kỹ thuật :
      thùng chứa :
        - tên : ví dụ
          image : example.com/example-image:latest
          các cổng :
            - containerPort : 80
kubectl apply -f deploy.yml

Ví dụ này tạo triển khai Kubernetes của hình ảnh example.com/example-image:latest Trường replicas: 3 có nghĩa là bạn sẽ kết thúc với ba trường hợp vùng chứa, cung cấp khả năng dự phòng cho hệ thống của bạn. Triển khai tương tự như chạy docker run -d -p 80:80 example.com/example-image:latest , mặc dù điều này sẽ chỉ bắt đầu một vùng chứa duy nhất.

Giao thông

Traefik là một proxy ngược HTTP dễ dàng tích hợp với khối lượng công việc vùng chứa. Nó tự động cấu hình lại chính nó với các tuyến mới khi bạn tạo và xóa các vùng chứa.

Quảng cáo

Traefik cho phép bạn đính kèm nhãn vào vùng chứa của mình để xác định tên miền và hành vi chuyển tiếp. Phần mềm sẽ tạo các tuyến proxy thích hợp mỗi khi vùng chứa có nhãn phù hợp tham gia vào mạng Traefik.

The Traefik web UI
Traefik

Traefik cũng cung cấp khả năng cân bằng tải, hỗ trợ WebSockets, API REST, số liệu tích hợp và trang tổng quan dựa trên web để bạn có thể theo dõi lưu lượng truy cập của mình trong thời gian thực. Đó là một cách tốt để hiển thị nhiều vùng chứa công khai thông qua tên miền bằng cách sử dụng một cài đặt Docker duy nhất.

Trivy

Trivy là một trình quét hình ảnh vùng chứa giúp phát hiện ra các lỗ hổng đã biết. Việc quét hình ảnh của bạn trước khi triển khai vào sản xuất giúp bạn tự tin rằng khối lượng công việc của mình được an toàn và bảo mật.

Trivy có sẵn dưới dạng hình ảnh Docker của riêng nó. Bạn có thể bắt đầu quét đơn giản example-image:latest hình ảnh mới nhất bằng lệnh sau:

docker run --rm 
    -v trivy-cache: /root/.cache/ 
    -v /var/run/docker.sock:/var/run/docker.sock 
    aquasec / trivy: ví dụ hình ảnh mới nhất-image: mới nhất

Screnshot of a Trivy report

Trivy xác định các gói phần mềm trong hình ảnh của bạn, tìm kiếm lỗ hổng bảo mật và tạo báo cáo chứa ID CVE, mức độ nghiêm trọng và phạm vi phiên bản bị ảnh hưởng của từng vấn đề. Bạn nên nâng cấp từng gói lên FIXED VERSION do Trivy chỉ định. Do đó, chạy công cụ sau khi bạn xây dựng hình ảnh là một cách dễ dàng để tăng cường bảo mật cho các triển khai của bạn.

Syft

Syft tạo SBOM (hóa đơn phần mềm của vật liệu) từ hình ảnh Docker. Đây là danh sách tất cả các gói hệ điều hành và các phụ thuộc ngôn ngữ lập trình có trong hình ảnh.

 

02b6d378

Quảng cáo

Syft giúp bạn kiểm tra chuỗi cung ứng phần mềm của mình. Docker giúp dễ dàng tham chiếu nội dung từ xa và xếp lớp các hệ thống tệp phức tạp mà không nhất thiết phải nhận ra. Người dùng hình ảnh của bạn thậm chí còn khó khăn hơn để tìm ra những gì nằm bên trong.

Các cuộc tấn công nổi tiếng gần đây đã chứng minh rằng chuỗi cung ứng phần mềm quá dài là một mối đe dọa nghiêm trọng. Chạy Syft trên các hình ảnh của bạn giúp bạn thông báo về thành phần của chúng, cho phép bạn đánh giá xem bạn có thể loại bỏ một số gói hoặc chuyển sang một hình ảnh cơ sở tối thiểu hơn.

Lặn

Về một chủ đề liên quan, Dive đơn giản hóa việc kiểm tra hệ thống tệp hình ảnh Docker. Hình ảnh khá mờ theo mặc định, do đó, thông thường khi bắt đầu một vùng chứa để tìm ra những gì nằm bên trong. Điều này có thể khiến bạn gặp rủi ro nếu hình ảnh chứa quy trình độc hại.

7beeba46

Dive cho phép bạn điều hướng hệ thống tệp của hình ảnh bằng cách sử dụng chế độ xem dạng cây tương tác trong thiết bị đầu cuối của bạn. Bạn cũng có thể duyệt từng lớp để xem hình ảnh đã được xây dựng như thế nào. Chỉ xem các thay đổi trong một lớp giúp bạn hình dung những thay đổi được áp dụng bởi từng giai đoạn xây dựng, ngay cả khi bạn không có quyền truy cập vào Dockerfile ban đầu.

Flocker

Flocker là một trình quản lý khối lượng kết hợp việc quản lý các vùng chứa và dữ liệu liên tục của chúng. Nó hỗ trợ môi trường đa máy chủ, đơn giản hóa việc di chuyển khối lượng giữa các máy chủ khi các vùng chứa được lên lịch lại.

Tính di động này đảm bảo khối lượng luôn có sẵn ở bất kỳ nơi nào có container. Ổ đĩa Docker truyền thống không thể rời khỏi máy chủ lưu trữ chúng được tạo, buộc các vùng chứa của bạn cũng ở trong tình trạng trì trệ.

Quảng cáo

Hỗ trợ lưu trữ phân tán giúp việc chuyển đổi các thùng chứa vào sản xuất dễ dàng hơn. Flocker lý tưởng cho các vùng chứa trạng thái cần được mở rộng trong môi trường phân tán trong khi vẫn duy trì khả năng tương thích với các công cụ lưu trữ khác nhau. Nó hỗ trợ các chương trình phụ trợ bao gồm Amazon EBS, Google GCE và OpenStack Block Storage.

Dokku

Dokku sử dụng Docker để cho phép bạn tự lưu trữ Nền tảng như một Dịch vụ (PaaS) của riêng mình. Nó tự động quay các vùng chứa Docker khi bạn đẩy mã bằng Git.

Là một nền tảng ứng dụng hoàn chỉnh, Dokku cho phép bạn lập bản đồ các miền, thêm SSL, triển khai nhiều môi trường thông qua các nhánh Git và định cấu hình các dịch vụ phụ trợ như cơ sở dữ liệu. Đó là một giải pháp thay thế tuyệt vời cho các nền tảng thương mại như Heroku và Firebase cho phép bạn duy trì việc triển khai sản xuất trên phần cứng của riêng mình.

Thiết lập máy chủ Dokku cho phép bạn khởi động các ứng dụng trong các vùng chứa riêng biệt mà không cần tìm hiểu tất cả những điều phức tạp của quản lý vùng chứa thủ công. Bạn có thể tập trung vào việc viết và cam kết mã bằng các quy trình làm việc dựa trên Git đã thiết lập. Thêm máy chủ Dokku của bạn làm điều khiển từ xa Git có nghĩa là bạn có thể git push để triển khai các thay đổi của mình, cục bộ trong thiết bị đầu cuối của bạn hoặc như một phần của đường ống CI.

Hadolint

Hadolint là một trình liên kết Dockerfile giúp kiểm tra các giai đoạn xây dựng của bạn có tuân thủ các phương pháp hay nhất được đề xuất hay không. Chạy Hadolint có thể phát hiện ra các vấn đề cấu hình phổ biến khiến các bản dựng của bạn chậm hơn và kém an toàn hơn. Hadolint sử dụng ShellCheck trong nội bộ để bổ sung các tập lệnh shell trong hướng dẫn RUN

Bạn có thể tải xuống Hadolint dưới dạng tệp nhị phân được biên dịch trước, thử nó trên web hoặc sử dụng hình ảnh Docker của riêng nó, hadolint/hadolint . Bắt đầu quét bằng cách cung cấp đường dẫn đến Dockerfile tới tệp nhị phân Hadolint:

hadolint Dockerfile

971de3d5

Quảng cáo

Hadolint sẽ quét Dockerfile của bạn để tìm các vấn đề và hiển thị kết quả trong thiết bị đầu cuối của bạn. Một số quy tắc đi kèm bao gồm kiểm tra các WORKDIR tuyệt đối, yêu cầu COPY --from duy nhất – từ bí danh và không chuyển sang người dùng không phải root trước khi kết thúc Dockerfile. Chạy Hadolint thường xuyên sẽ giúp xây dựng hình ảnh an toàn hơn và hiệu quả hơn tuân thủ các tiêu chuẩn của cộng đồng.

Bản tóm tắt

Docker là một công cụ dành cho nhà phát triển tuyệt vời nhưng nó thậm chí còn tốt hơn khi được ghép nối với các dự án phổ biến khác. Các sáng kiến cộng đồng có thể tăng cường bảo mật cho hình ảnh của bạn, giúp bạn phát hiện các vấn đề trong Dockerfiles và cung cấp GUI đa năng để quản lý vùng chứa của bạn.

Các công cụ mới liên tục xuất hiện vì vậy rất đáng để duyệt qua các trang web chia sẻ mã như GitHub để khám phá các dự án sắp tới. Chủ đề Docker là một điểm khởi đầu tốt cho việc khám phá của bạn.

How to Check If Your Server Is Vulnerable to the log4j Java Exploit (Log4Shell)

Cách kiểm tra xem máy chủ của bạn có dễ bị tấn công bởi Khai thác Java log4j (Log4Shell) hay không

How to Migrate an AWS S3 Bucket to Another Account or Service

Cách di chuyển Nhóm AWS S3 sang Tài khoản hoặc Dịch vụ khác

What Is Prometheus and Why Is It So Popular?

Prometheus là gì và tại sao nó lại phổ biến như vậy?

How to Migrate an AWS S3 Bucket to Another Account or Service

Cách tự động tắt các phiên bản AWS EC2

What Is BusyBox and Where Is It Used?

BusyBox là gì và nó được sử dụng ở đâu?

How to Debug Your Application’s Performance

Cách gỡ lỗi hiệu suất ứng dụng của bạn

Dịch từ: https://www.cloudsavvyit.com/15158/10-tools-that-complement-docker/

Hãy giúp chúng tôi đánh giá bài viết này!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây