Lời nói đầu
Đây không phải là một bài viết Docker ngẫu nhiên khác. Tôi đã gặp khó khăn trong việc hiểu khái niệm Docker khi mới bắt đầu sự nghiệp. Có rất nhiều tài liệu tham khảo, nhưng chúng lại quá chi tiết cho người mới bắt đầu. Tôi cá rằng nhiều người khác cũng gặp khó khăn như vậy. Vì vậy, tôi đã cố gắng tóm tắt những điều cơ bản của Docker và cách chạy nó cho người mới bắt đầu trong bài viết này.
Docker là gì
Bạn đã nghe thuật ngữ Docker ở đâu đó nếu bạn là một nhà phát triển ở bất kỳ cấp độ nào. Nhưng bạn có biết chính xác nó là gì không? Theo tài liệu chính thức, Docker là một nền tảng mã nguồn mở cho phép các nhà phát triển xây dựng, triển khai, chạy, cập nhật và quản lý các container — các thành phần thực thi tiêu chuẩn kết hợp mã nguồn của ứng dụng với các thư viện hệ điều hành (OS) và các phụ thuộc cần thiết để chạy mã đó trong bất kỳ môi trường nào.
Tại sao chúng ta nên sử dụng nó?
Dưới đây là một số lợi ích mà tôi thấy hữu ích.
- Quản lý phụ thuộc dễ dàng: Các kỹ sư phần mềm đã từng đấu tranh để thiết lập môi trường phát triển đúng. Nhiều lần, các phiên bản cục bộ khác với những gì mà phần mềm yêu cầu. Ví dụ, bạn đang sử dụng Node v14 và dự án yêu cầu Node v16. Để chạy nó, bạn phải chuyển đổi phiên bản Node. Điều này không phải là vấn đề lớn nếu bạn chỉ có một dự án. Nhưng nếu bạn có nhiều dự án và chúng cần các phiên bản khác nhau cho tất cả các phụ thuộc thì đó là một cơn ác mộng. Các container cung cấp các môi trường cách ly để chạy các phiên bản khác nhau của các phụ thuộc một cách an toàn.
- Triển khai và mở rộng dễ dàng: Các container làm cho việc tích hợp liên tục và triển khai dễ dàng hơn. Đối với mỗi lần triển khai, chúng ta có thể chạy các bài kiểm tra trên container để đảm bảo không có gì bị hỏng, chẳng hạn. Việc mở rộng cũng trở nên dễ dàng hơn. Nhờ các môi trường nhất quán, chúng ta chỉ cần thêm hoặc giảm số lượng container.
- Không phụ thuộc vào hệ điều hành: Mỗi nhóm có thể sử dụng một hệ điều hành khác nhau – Linux, macOS, hoặc Windows. Nếu vậy, có thể cần thêm các bước để thiết lập các dự án, điều này làm nhóm căng thẳng. Vì Docker là nền tảng không phụ thuộc vào hệ điều hành, các nhóm có thể làm việc trong một môi trường nhất quán.
- Không chỉ dành cho DevOps: Tôi đã thấy những người nghĩ rằng Docker chỉ dành cho DevOps. Không phải vậy. Bất kể bạn làm công việc gì, biết về Docker là hữu ích. Nó được sử dụng trong hầu hết các quá trình phân phối phần mềm. Tất nhiên, nhóm DevOps sẽ chịu trách nhiệm nhiều trong quá trình triển khai. Nhưng công việc của họ không phải là gỡ lỗi toàn bộ quá trình khi bạn gặp vấn đề giữa chừng. Vì vậy, hãy học cách bắt cá.
Khái niệm cơ bản
Hãy cố gắng hiểu các thuật ngữ và khái niệm quan trọng trước.
- Image vs Container: Mọi người có thể sử dụng chúng thay thế cho nhau, nhưng chúng khác nhau. Image là một mẫu. Container là một môi trường chạy bạn có thể sử dụng để chạy image của mình.
- Registry: Docker registry giống như Github cho các image Docker. Sẽ có cả các image công khai và riêng tư. Ubuntu, Redis, hoặc Postgres là các image công khai mà mọi người có thể sử dụng cho phát triển của mình. Các image riêng tư chỉ có thể truy cập được bởi những người dùng được phép.
- CLI: Bạn có thể tương tác với Docker bằng dòng lệnh. Docker CLI được tài liệu rất tốt. Bạn có thể tìm thấy hầu hết các lệnh với
--help
. Tôi sẽ đề cập đến các lệnh thông dụng trong một bài viết khác.
Lần chạy đầu tiên
Bây giờ bạn đã hiểu các khái niệm cơ bản và luồng làm việc của Docker, đã đến lúc tự chạy nó. Hãy chắc chắn rằng bạn đã cài đặt Docker trong hệ thống của mình. Hãy sử dụng Postgres. Thử chạy:
docker run --name postgres-db -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres
--name
là tùy chọn để gán tên cho container.-e
là tùy chọn để truyền biến môi trường. Ở đây tôi đặtPOSTGRES_PASSWORD
thànhpassword
.-p
là tùy chọn để ánh xạ cổng của bạn.-d
là tùy chọn để chạy trong nền.
Sau đó, thử chạy docker ps
Nó sẽ hiển thị các container cùng trạng thái của chúng. Thế là xong!
Kết luận
Tôi đã đề cập đến Docker là gì và tại sao chúng ta nên học về nó. Tôi cũng đã trình bày khái niệm cốt lõi của Docker và cách chạy các ứng dụng với Docker. Tôi không thể tách rời khỏi nó với tư cách là một kỹ sư backend. Bạn sẽ như vậy. Vì vậy, hãy bắt đầu từ hôm nay! Hãy theo dõi các bài viết tiếp theo 🙂
Để xem bài viết gốc, vui lòng truy cập link này.