Mặc dù Docker là một phần mềm quen thuộc với các nhà phát triển, bạn hoàn toàn không cần có kinh nghiệm lập trình để sử dụng Docker Desktop trên Windows. Thực tế, tôi đã dùng nền tảng này trong nhiều tháng qua mà không hề có kỹ năng code nào. Tuy nhiên, việc sử dụng phần mềm mà không có kiến thức về ngôn ngữ lập trình cũng có những hạn chế nhất định. 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, 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. Bài viết này sẽ chia sẻ chi tiết hành trình và những kinh nghiệm quý báu đó.
Bắt đầu dễ dàng với nhiều ứng dụng mà không cần kinh nghiệm code
Chỉ vài lệnh Docker đơn giản là đủ
Khi mới bắt đầu sử dụng Docker Desktop, ban đầu tôi cảm thấy khá e ngại. Tuy nhiên, tôi đã có thể thiết lập Docker Desktop trên Windows mà không gặp quá nhiều khó khăn, và chỉ sau một ngày, tôi đã có nhiều container chạy ổn định. Các ứng dụng này bao gồm Wallos (dùng để theo dõi các gói đăng ký), Node-RED và NocoDB.
Giao diện ứng dụng Wallos đang chạy dưới dạng container Docker trên Docker Desktop, minh họa khả năng tự host dễ dàng các ứng dụng cơ bản.
Điều này có được nhờ hướng dẫn chi tiết từ mỗi ứng dụng về cách kéo image container và bắt đầu chạy nó 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 quá nhiều lệnh ngoài một vài lệnh cơ bản. Ví dụ, Wallos 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 mở rộng hơn một chút
Cần nâng cao kỹ năng 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 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 toàn bộ ứ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 cụ thể 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, rất 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 khi cũng có những rắc rối phát sinh…
Khắc phục sự cố trở nên khó khăn hơn
Có thể cần sự giúp đỡ từ các lập trình viên
Mặc dù bạn có thể chạy nhiều container dễ dàng trong Docker mà không cần kinh nghiệm lập trình, mọi thứ sẽ phức tạp hơn một chút khi gặp sự cố. Nếu không có kinh nghiệm code, việc tìm ra vấn đề trong container khi mọi thứ không hoạt động đúng có thể rất khó khăn. Dù bạn có thể dễ dàng truy cập log trong Docker Desktop, việc diễn giải bất kỳ lỗi nào sẽ trở nên khó khăn 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ị các bản ghi (logs) chi tiết của một container Docker, cho thấy sự phức tạp khi đọc và hiểu thông báo lỗi mà không có kiến thức lập trình.
Tôi đã gặp vấn đề này nhiều nhất với Dawarich. Chính nhờ các diễn đàn GitHub mà tôi đã có thể khoanh vùng 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ự tạo ra nó, và script do người dùng khác cung cấp không hoạt động với tôi. Cuối cùng, tôi đã giải quyết được 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 chỉ tự mình làm, đây có lẽ sẽ là một ngõ cụt.
Thiếu kỹ năng lập trình sẽ giới hạn các ứng dụng bạn có thể host
Rào cản đáng kể cuối cùng cũng sẽ xuất hiện
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 ngay từ đầu, bạn cũng sẽ nhận thấy có nhiều ứng dụng thực sự yêu cầu sự 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 rào cản 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 vài dòng hoặc trường.
Trang GitHub của Huginn hiển thị trên màn hình laptop, minh họa một trong những ứng dụng Docker đòi hỏi kỹ năng lập trình để tùy chỉnh và khai thác tối đa.
Trong khi đó, dù tôi đã có thể chạy container Huginn, việc thiếu kỹ năng lập trình đồng nghĩa với việc tôi không thể chỉnh sửa và tạo các tự động hóa mới một cách hiệu quả. Kết quả là, kiến thức code của tôi đã giới hạn chính xác những ứng dụng tôi có thể host, nhưng không đến mức mà tôi nghĩ khi mới bắt đầu. Tuy nhiên, càng sử dụng Docker, bạn sẽ càng tìm thấy những cơ hội mà kinh nghiệm lập trình sẽ mang lại lợi ích đáng kể.
Kết luận: Bạn có thể sử dụng Docker không cần kỹ năng lập trình, nhưng sẽ có những giới hạn
Khả năng của tôi trong việc sử dụng Docker để tự host các ứng dụng như Dawarich, Immich và Firefly III đã chứng minh 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 rào cản ngăn cản tôi tận dụng tối đa nền tảng.
Tôi có kế hoạch cuối cùng 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 tự điều chỉnh tốc độ 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 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.
Logo chính thức của Docker với biểu tượng cá voi màu xanh, đại diện cho nền tảng container hóa hàng đầu.Nguồn: Docker
Tìm hiểu thêm về Docker và các mẹo tự host
Nếu bạn đang cân nhắc hành trình tự host với Docker, hy vọng những chia sẻ này sẽ giúp bạn hình dung rõ hơn. Đừng ngần ngại khám phá và thử nghiệm. Để biết thêm các mẹo và hướng dẫn chi tiết về công nghệ, hãy thường xuyên truy cập khothuthuat.net!