Giới thiệu
- Bài viết này được viết ra nhằm mục đích trao đổi và học hỏi thêm về Jenkins cũng như là CI/CD. Bởi vì, tôi không phải là người chuyển về mảng Dev Ops nên là mục đích viết ra mục đích này để nhận được thêm kiến thức từ việc research của tôi cũng như là đóng góp từ các bạn đọc bài viết này của tôi. Cảm ơn các bạn!
- Jenkins là một công cụ tự động hóa mã nguồn mở, thường được sử dụng trong quy trình CI/CD (Continuous Integration / Continuous Delivery) – tức là tích hợp và triển khai liên tục. Giúp cho việc phát triển ứng dụng một cách dễ dàng và nhanh chóng.
- Trong công nghệ phần mềm, CI/CD hoặc CICD là thực tiễn kết hợp của tích hợp liên tục và phân phối liên tục hoặc triển khai liên tục ít thường xuyên hơn. Đôi khi chúng được gọi chung là phát triển liên tục hoặc phát triển phần mềm liên tục.
1. Jenkins là gì?
- Jenkins giúp tự động hóa việc build, test, và deploy ứng dụng phần mềm.
- Được viết bằng Java, hỗ trợ rất nhiều plugin để tích hợp với các công cụ khác như Git, Maven, Docker, Kubernetes, v.v.

2. Ưu điểm và nhược điểm.
2.1. Ưu điểm.
- Tự động hóa CI/CD mạnh mẽ: Jenkins giúp tự động build, test, deploy phần mềm, giảm công việc thủ công.
- Plugin phong phú: Có hơn 1.800 plugin hỗ trợ tích hợp với các công cụ như Git, Docker, Slack, Kubernetes, v.v.
- Mã nguồn mở, miễn phí: Không tốn chi phí bản quyền, cộng đồng đông đảo và cập nhật thường xuyên.
- Tích hợp tốt với Git: Hỗ trợ tự động hóa pipeline mỗi khi có commit/pull request.
- Dễ mở rộng & tùy biến: Có thể xây dựng các pipeline phức tạp theo nhu cầu thực tế của doanh nghiệp.
- Web UI trực quan: Giao diện dễ dùng, dễ theo dõi build pipeline.
2.2. Nhược điểm.
- Cấu hình ban đầu phức tạp: Đối với người mới, việc cài đặt và cấu hình pipeline có thể gây khó khăn.
- Phụ thuộc plugin: Sử dụng nhiều plugin khiến hệ thống dễ bị lỗi nếu plugin không tương thích.
- Không thân thiện với người không chuyên DevOps: Cần hiểu về CI/CD, shell, Git, cấu hình môi trường,… mới dùng hiệu quả.
- Hiệu năng có thể giảm nếu quản lý kém: Nếu không tối ưu hóa job và tài nguyên máy, Jenkins dễ bị chậm hoặc treo.
- Bảo mật phải tự quản lý: Cần cẩn thận phân quyền người dùng và bảo mật hệ thống Jenkins.
Triển khai
Sau khi bạn nắm khái quát về khái niệm thì bước tiếp theo cùng nhau đi start-up một Jenkins trên local bằng Docker theo các bước sau nhé. Lưu ý: trước khi thực hiện cần chuẩn bị các công cụ Docker. Bạn có thể download và đường dẫn: https://www.docker.com/products/docker-desktop/
Bước 1: Pull Image
- Bạn truy cập vào trang docker hub để pull Jenkins image về thông qua link: https://hub.docker.com/r/jenkins/jenkins
- Bạn thực hiện copy lệnh dưới đây và dáng trên terminal của bạn
docker pull jenkins/jenkins

Bước 2: Tạo Volume
- Để lưu trữ dữ liệu Jenkins bạn thực hiện lệnh sau:
docker volume create jenkins_home
Bước 3: Run Container
- Bạn thực hiện lệnh sau:
docker run --name jenkins-blueocean -p 8080:8080 -p 50000:50000 -d -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
- Giải thích về lệnh:
docker run
: Lệnh khởi chạy một container Docker mới.--name jenkins-blueocean
: Đặt tên với container.-p 8080:8080
: Expose cổng 8080: Jenkins Web UI sẽ chạy trên cổng này. Bạn sẽ truy cập Jenkins tạihttp://localhost:8080
.-p 50000:50000
: Expose cổng 50000: Dùng cho Jenkins agents (kết nối Master/Slave hoặc Build Agents).-d
: Detached mode: chạy container ở chế độ nền (background), không chiếm terminal.-v jenkins_home:/var/jenkins_home
: Gắn volume: tạo volume tênjenkins_home
và mount nó vào đường dẫn/var/jenkins_home trong container
để lưu dữ liệu Jenkins (plugins, job config,...).jenkins/jenkins
: Image Docker chính thức của Jenkins, sẽ được pull từ Docker Hub nếu chưa có trong máy.
- Sau đó, bạn có thể kiểm tra container bằng cách sử dụng lệnh:
docker ps

- Sau khi bạn kiểm tra đã tạo container thành công. Bạn có thể kiểm trạ trạng thái chạy và administrator password khởi động Jenkins thông qua lệnh:
docker logs <CONTAINER_ID>
- Nếu như bạn bạn chưa thấy được administartor password thì bạn có thể sử dụng lệnh bên dưới để lấy administrator password:
docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword
Bước 3: Khởi động Jenkins
-
Sau khi bạn đã lấy được administrator password, bạn hãy truy cập vào
localhost:8080
để truy cập vào Jenkins. -
Nhập Administrator password, sau đó nhấn continue.
-
Tiếp theo, bạn chọn tiếp tục Install suggested plugins, việc này giúp nó thực hiện giúp bạn cài đặt những plugins cần thiết cho Jenkins.
-
Sau khi xong quá trình cài đặt các plugins, thì bây giờ bạn hãy nhập username và password đã được tạo mới của bạn, nhấn đăng nhập và Jenkins homepage sẽ được hiển thị ra cho bạn.

- Vậy đã bạn thành công khởi động Jenkins bằng Docker rồi đấy! Chúc bạn thành công!
Tóm lại
- Đây chỉ là bài viết nhằm giúp mọi người hiểu cơ bản về Jenkins và các khởi động Jenkins bằng Docker. Có rất là nhiều cách để tạo ra Jenkins nhưng trong bài viết này mình chỉ có thể hướng dẫn tạo Jenkins bằng Docker.
- Cảm ơn các bạn đã đọc bài viết của mình!
Nguồn tài liệu tham khảo
https://www.jenkins.io/doc/book/getting-started/
https://docs.docker.com/get-started/