Docker là một công cụ quen thuộc với giới lập trình viên, nhưng bạn không nhất thiết phải có kinh nghiệm viết code để sử dụng Docker Desktop trên Windows. Thực tế, tôi đã sử dụng nền tảng này trong nhiều tháng qua mà không hề có kỹ năng lập trình nào. Tuy nhiên, việc sử dụng phần mềm mà không quen thuộc với các ngôn ngữ lập trình cũng có những hạn chế nhất định. Mặc dù tôi rất hài lòng khi chọn Docker Desktop để bắt đầu hành trình tự host ứng dụng của mình, nhưng tôi đã học được khá nhiều điều về việc sử dụng nền tảng này mà không có bộ kỹ năng của một nhà phát triển.
Laptop hiển thị Immich và Nextcloud trên trình duyệt web
Bắt đầu với nhiều ứng dụng dễ dàng, không cần kinh nghiệm lập trình
Chỉ vài lệnh Docker cơ bản là đủ để khởi chạy
Khi mới bắt đầu sử dụng Docker Desktop, ban đầu tôi khá e dè. Tuy nhiên, tôi đã có thể thiết lập Docker Desktop trên Windows 11 PC mà không tốn nhiều công sức, và chỉ trong một ngày, tôi đã có nhiều container chạy ổn định. Trong số đó có Wallos (để theo dõi các gói đăng ký), Node-RED và NocoDB.
Giao diện Docker Desktop hiển thị một container Wallos đang chạy, minh họa việc khởi động ứng dụng dễ dàng
Điều này có được nhờ vào hướng dẫn chi tiết của mỗi ứng dụng về cách tải image container và khởi chạy chúng trong Docker. Thực tế, tôi không cần phải hiểu sự phức tạp của Docker Engine hay hơn một vài lệnh đơn giản. Wallos, chẳng hạn, đã cung cấp mọi thứ tôi cần dưới dạng văn bản mà tôi chỉ việc sao chép và dán vào terminal của mình.
Docker Compose: Đòi hỏi kỹ năng cao hơn
Cần mở rộng kiến thức cho các ứng dụng đa container
Docker Compose cho phép bạn host các ứng dụng đa container, điều này là cần thiết cho những ứng dụng phụ thuộc vào các thành phần như cơ sở dữ liệu. Lý do là nhiều container được liên kết với nhau cho phép bạn định nghĩa ứng dụng từ một tệp YAML duy nhất.
Sử dụng Docker Compose sẽ yêu cầu bạn có khả năng điều hướng đến một thư mục nhất định trên máy tính bằng terminal lệnh, chỉnh sửa các tệp cấu hình và sử dụng lệnh docker compose up -d để khởi động các container của bạn. May mắn thay, nhiều ứng dụng cung cấp thông tin chi tiết khi thực thi các lệnh liên quan và mô tả các trường cấu hình cần chỉnh sửa.
Nhờ đó, tôi có thể tự host Dawarich, Immich, PhotoPrism và Firefly III. Nhưng đôi lúc vẫn gặp phải một số rắc rối…
Khắc phục sự cố: Trở ngại lớn đối với người không chuyên
Có thể cần sự hỗ trợ từ các lập trình viên thực thụ
Mặc dù bạn có thể dễ dàng chạy nhiều container trong Docker mà không cần kinh nghiệm lập trình, mọi thứ trở nên phức tạp hơn một chút khi khắc phục sự cố. Nếu bạn không có kinh nghiệm lập trình, có thể khó tìm ra vấn đề đang xảy ra trong container khi mọi thứ không hoạt động đúng. Mặc dù bạn có thể dễ dàng truy cập nhật ký (logs) trong Docker Desktop, nhưng việc giải thích bất kỳ lỗi nào sẽ khó hơn nếu bạn không quen thuộc với các ngôn ngữ lập trình nhất định.
Màn hình hiển thị nhật ký (logs) của một container Docker, minh họa khó khăn khi khắc phục sự cố
Tôi gặp phải vấn đề này nhiều nhất với Dawarich. Thông qua các diễn đàn GitHub, tôi đã có thể cô lập vấn đề khiến tôi không thể nhập dữ liệu vào ứng dụng. Tôi có thể khắc phục sự cố này bằng cách tạo một script Python để chia nhỏ tệp JSON của mình thành các phần nhỏ hơn, nhưng tôi không thể tự mình tạo ra một script như vậy, và script do những người dùng khác cung cấp lại không hoạt động với tôi.
Cuối cùng, tôi đã có thể giải quyết vấn đề này với sự giúp đỡ của một đồng nghiệp, người đã viết một script hữu ích để chia nhỏ dữ liệu của tôi. Nhưng nếu tự mình, đây có lẽ đã là một ngõ cụt.
Hạn chế về ứng dụng có thể host khi thiếu kỹ năng code
Bạn sẽ gặp phải những rào cản đáng kể
Mặc dù nhiều ứng dụng có giao diện người dùng thân thiện cho phép bạn cấu hình cài đặt, cũng như các hướng dẫn giải thích cách thiết lập chúng từ đầu, bạn cũng sẽ thấy rằng có nhiều ứng dụng thực sự yêu cầu hiểu biết về các ngôn ngữ lập trình khác nhau.
Ví dụ, khi tôi muốn thử Authelia, việc thiếu kinh nghiệm lập trình đã trở thành một trở ngại không thể vượt qua. Điều này là do cấu hình cho Authelia đòi hỏi nhiều hơn là chỉ thay đổi một vài dòng hoặc trường.
Màn hình laptop hiển thị trang GitHub của Huginn, một ứng dụng tự host đòi hỏi kiến thức lập trình
Trong khi đó, mặc dù tôi có thể khởi chạy container Huginn của mình, nhưng việc thiếu kỹ năng lập trình có nghĩa là tôi không thể chỉnh sửa và tạo các quy trình tự động hóa mới một cách hiệu quả.
Kết quả là, kiến thức lập trình của tôi giới hạn chính xác các ứng dụng tôi có thể host, nhưng không đến mức tôi nghĩ khi mới bắt đầu. Tuy nhiên, bạn càng sử dụng Docker, bạn càng tìm thấy nhiều cơ hội mà kinh nghiệm lập trình sẽ có lợi.
Bạn có thể dùng Docker không cần code, nhưng sẽ có những giới hạn nhất định
Khả năng sử dụng Docker để tự host các ứng dụng như Dawarich, Immich và Firefly III của tôi chứng tỏ rằng bạn không cần kỹ năng lập trình để sử dụng nền tảng này. Tuy nhiên, khi tôi mở rộng thư viện các dịch vụ tự host của mình, tôi đã gặp phải nhiều trở ngại ngăn cản tôi tận dụng tối đa nền tảng.
Tôi dự định sẽ học thêm về lập trình thông qua các nền tảng tự học, nhưng tôi cũng muốn cân bằng mọi thứ do lịch trình bận rộn và năng lượng hạn chế. Trong thời gian chờ đợi, tôi có bạn bè và đồng nghiệp giúp đỡ tôi khắc phục các sự cố đơn giản, và các bài đăng trên diễn đàn tiếp tục là một nguồn thông tin thiết yếu.
Biểu tượng Docker màu xanh, đại diện cho nền tảng container Docker
Bạn đã từng sử dụng Docker Desktop để tự host ứng dụng mà không cần biết code? Hãy chia sẻ kinh nghiệm và những lời khuyên của bạn trong phần bình luận bên dưới!