2,997 lượt đọc
2,997 lượt đọc

Dưới đây là một số hacks Docker đã thay đổi cuộc sống của tôi

từ tác giả Pratik Pathak4m2025/05/01
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Docker là một công cụ mạnh mẽ để xây dựng và quản lý các ứng dụng dựa trên Docker. Nó đã trở thành một phần của thói quen hàng ngày của tôi, và tôi hầu như không nghĩ về nó nữa.
featured image - Dưới đây là một số hacks Docker đã thay đổi cuộc sống của tôi
Pratik Pathak HackerNoon profile picture

Okay, chúng ta hãy phá vỡ tiến hóa Docker này.Thật hoang dã khi mọi thứ thay đổi.


Nhớ lại khi Docker cảm thấy như... đấu tranh với một con gà trống nhát? Nhiều lệnh, nhiều khái niệm. Xây dựng, chạy, đẩy, kéo, khối lượng, mạng... đầu tôi đang xoay.nên, nhưng nó luôn luôn cảm thấy một chút nhạt nhẽo, một chút... đầy mài mòn. lịch sử cuối cùng của tôi chỉ là một mớ hỗn độndocker ps -aVà cố gắng tuyệt vọng để nhớ rằngmộtlệnh từ tuần trước.


Sau đó, từ từ, mọi thứ bắt đầu nhấp chuột. Không phải là một khoảnh khắc Eureka lớn, mà là một loạt các khám phá nhỏ "aha!" Các thủ thuật nhỏ, tối ưu hóa, điều chỉnh quy trình làm việc. Hacks, tôi đoán? Và thành thật mà nói, họ đã xâm nhập vào thói quen hàng ngày của tôi rất nhiều đến nỗi tôi hầu như không nghĩ về họ nữa.Làm thế nào tôi làm những điều.


Dưới đây là những game-changers bị mắc kẹt:

Tên sản phẩm: Terminal Aliases: The Sanity Savers

Chiến thắng lớn đầu tiên?Aliases.♂️ Tại sao tôi đã dành nhiều tháng để gõdocker-compose up -d --buildhoặcdocker psLặp đi lặp lại một lần nữa? thiết lập biệt danh đơn giản trong.bashrchoặc.zshrcĐó là một tiết lộ.

# My sanity savers
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
alias dcr='docker-compose run --rm' # For running one-off commands
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dip='docker image prune -f'  # Prune dangling images
alias dvp='docker volume prune -f' # Prune unused volumes
alias dsp='docker system prune -af' # The big cleanup! 💥


chỉ typingdcuthay vì toàn bộ shebang? Oh, milliseconds tiết kiệm! Nó nghe có vẻ tầm thường, nhưng nhân nó bằng hàng chục lần một ngày ... nó bổ sung. ngón tay của tôi cảm ơn tôi. ít gõ, ít gõ, nhiều luồng.


Nhận cheatsheet cuối cùng của docker từ đây :Chiếc Docker cheatsheet

2.The Mighty.dockerignoreLời bài hát: Slimming Down Builds

Sau đó đến những.dockerignoreLời bài hát: Another "Duh" Moment I Knew About.gitignoredĩ nhiên, nhưng ban đầu tôi không nhận ra tầm quan trọng của.dockerignoreis for build performance. My early Docker builds werechậm như vậyTại sao?Bởi vì bối cảnh xây dựng đã gửiTất cảTải về Docker Daemonnode_modules, nhật ký, tệp tạm thời, tác phẩm xây dựng địa phương... tất cả mọi thứ!


Tạo một đúng.dockerignorefile, liệt kê tất cả các rác tôi không cầnbên trongĐột nhiên, việc xây dựng nhanh hơn.Các hình ảnh nhỏ hơn (đôi khi đáng kể như vậy).Cảm giác giống như việc đặt một cái mù trên Docker, nói với nó: "Chỉ tập trung vàonày, bỏ qua phần còn lại." ít bối rối, vòng phản hồi nhanh hơn. nụ hôn của đầu bếp! 👌

Xây dựng nhiều giai đoạn: Lean, Mean Production Machines ➡️

Multi-stage builds... ok, cái này cảm thấy hơi tiến bộ hơn lúc đầu. Khái niệm là tuyệt vời, tuy nhiên.

  • Bước 1: Sử dụng một hình ảnh cơ sở với tất cả các công cụ xây dựng, biên dịch, SDK và phụ thuộc cần thiết để tạo ra hiện vật ứng dụng (chẳng hạn như một phiên bản nhị phân được biên soạn hoặc JavaScript được đóng gói).
  • Giai đoạn 2: Bắt đầu một hình ảnh cơ sở mới, sạch sẽ, tối thiểu (như alpine hoặc không tin tưởng).
  • Sao chép: Chỉ sao chép hiện vật cuối cùng từ giai đoạn đầu tiên vào giai đoạn thứ hai sạch sẽ này.


Kết quả? hình ảnh sản xuất nhỏ! Thay vì vận chuyển hình ảnh bị sưng lên với các công cụ xây dựng và sự phụ thuộc của nhà phát triển (cũng là rủi ro bảo mật!), Tôi vận chuyển hình ảnh lean chứaChỉPhải mất một chút để bao bọc đầu tôi xung quanh ngữ pháp, nhưng wow, sự khác biệt về kích thước hình ảnh và tư thế bảo mật là rất lớn.

Docker Compose Overrides: Taming Environments ️

Chúng ta hãy nói chuyệnDocker Compose overridefile. quản lý các môi trường khác nhau đã từng là một nỗi đau. Dev cần các khối lượng được lắp ráp để tải lại mã sống, cổng debug mở. Prod cần các biến môi trường khác nhau, có lẽ giới hạn tài nguyên nghiêm ngặt hơn, có lẽ là một điểm nhập cảnh khác. cố gắng quản lý điều này với mộtdocker-compose.ymllà lộn xộn, liên quan đến các phần bình luận hoặc phức tạpifĐiều kiện dựa trên các biến môi trường.


Khám phádocker-compose.override.ymllà pure bliss. Bạn có cơ sở của bạndocker-compose.ymlvới cấu hình chung. Sau đó, bạn tạodocker-compose.override.yml(Những gì Git thường bỏ qua thông qua.gitignore(Thuyết điểm) - Tác dụng của các công cụ phân loại, phân loại, phân loại các công cụ phân loại, phân loại các công cụ phân loại (overrideBạn thậm chí có thể có các tập tin cụ thể nhưdocker-compose.prod.ymlVà sử dụng các-fLá cờ :docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d. tách rời mối quan tâm sạch sẽ. không còn sự cố tình của các thiết lập dev! hallelujah!

5.Thường xuyên làm sạch: Giữ hệ thống Tidy ✨

Cuối cùng, thói quen củaregular cleanupDocker có thể tích lũyquá nhiềuDangling hình ảnh (lớp untagged từ build trước đó), khối lượng chưa sử dụng, ngăn chặn container, cache build cũ ... không gian đĩa của tôi đã từng biến mất một cách bí ẩn.


Bước vào nhịp điệu của việc chạy định kỳdocker system prune -af(cách tiếp cận hung hăng) hoặc cách tiếp cận nhắm mục tiêudocker image prune,docker volume prune,docker network prunedocker builder pruneNó giữ cho mọi thứ chạy trơn tru, ngăn chặn các vấn đề bộ nhớ cache kỳ lạ ("tại sao sự thay đổi của tôi không xuất hiện?!"), và giải phóng các gigabytes quý giá.dsp(Alias của tôi chodocker system prune -af) bây giờ là một thói quen thỏa mãn, gần như trị liệu.


Vì vậy, vâng, những điều này không chỉ là 'hacks' nữa. Chúng được bắt rễ. Chúng là bộ nhớ cơ bắp. Aliases bay từ ngón tay của tôi mà không suy nghĩ..dockerignorelà một trong những tập tin đầu tiên tôi tạo ra. nhiều giai đoạn xây dựng là mặc định cho bất cứ điều gì có khả năng sống. Compose overrides xử lý sự khác biệt môi trường trơn tru.


Docker đã đi từ là con gà trống khó chịu để một trợ lý mạnh mẽ, hợp lý hóa. Nó đi ra khỏi cách của tôi bây giờ. xây dựng là nhanh hơn, triển khai là mượt mà hơn, không gian đĩa của tôi là hạnh phúc hơn, và thành thật mà nói,Tôi làhạnh phúc hơn bởi vì có ít ma sát hơn. Nó không chỉ là về bản thân Docker; nó là về cách làm chủ những chi tiết nhỏ này làm trơn tru toàn bộ quy trình phát triển và triển khai của tôi. nó chắc chắn đã trở thành một phần của cuộc sống của tôi, hoặc ít nhất, cuộc sống kỹ thuật số của tôi.

L O A D I N G
. . . comments & more!

About Author

Pratik Pathak HackerNoon profile picture
Pratik Pathak@pratikpathak
Pratik Pathak is a highly accomplished technology professional with a passion for sharing his knowledge and expertise.

chuyên mục

BÀI VIẾT NÀY CŨNG CÓ MẶT TẠI...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks