Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn Containers

Optimize Container Image: Tránh copy thủ công file project

Có nhiều cách để optimize container images: Sử dụng Minimal Base Image: mình sẽ viết 1 bài này trong tương lai. Cơ bản là sẽ sử dụng Alpine với Distroless Image. Trước tiên, bạn cần khám phá bên trong một images: https://nhatkyhoctap.blogspot.com/2022/09/docker-kham-pha-qua-trinh-build-1-image.html Multistage image: https://nhatkyhoctap.blogspot.com/2022/09/docker-kham-pha-qua-trinh-build-1-image_14.html Giảm số lượng layer Caching DockerIgnore: https://nhatkyhoctap.blogspot.com/2022/09/docker-kham-pha-qua-trinh-build-1-image_14.html Sử dụng Volume để lưu trữ Applicition Data Trong bài viết này, mình sẽ hướng dẫn các bạn cách copy tự động file *.csproj thay vì phải manually. Một là để tránh việc tạo nhiều layer. Hai là hạn chế sai sót trong quá trình copy. Bạn có thể tham khảo bài viết: https://nhatkyhoctap.blogspot.com/2022/08/docker-tao-docker-file-cho-nhieu.html để lấy source code Bài toán Cấu trúc thư mục Project như sau: 📁 containerize-a-net-app     └──DockerizeMul...

Podman play kube - Part 1

Khi tìm hiểu về Kubernetes, mình thấy hơi khó khăn do mình tự học và practice tại nhà. Mình thấy 1 con đường học dễ hơn để tiếp cận Kubernetes là đi từ Docker => Podman => Pod => Minikube rồi tới Kubernetes. Không biết như vậy có đúng không? Podman play kube là gì? Podman play kube sẽ đọc trong một tệp có cấu trúc của Kubernetes YAML. Sau đó, nó sẽ tạo lại các container, pod hoặc volume được mô tả trong YAML. Sau đó, các container trong một pod sẽ được khởi động và ID của pod mới hoặc tên của volume mới được xuất ra. Vậy pod là gì? Theo định nghĩa trong Kubernetes: "Pod là đơn vị nhỏ nhất trong Kubernetes. Một Pod có thể chứa 1 hoặc nhiều containers" Trong bài viết này, mình sẽ làm 1 demo nhỏ gồm 1 pod chứa 1 container. Các bài tiếp theo, mình sẽ làm thêm các ví dụ tạo nhiều container trong 1 pod và sử dụng local image trong Minikube, sử dụng driver podman. Các bạn có thể xem 1 ví dụ cách tạo Pod và Service trong minikube sử dụng Hyper-V: https://nhatkyhoctap.blogspo...

Thay thế Docker bằng Buildah và Podman

Trong bài viết này, mình tập hợp lại các thông tin về OCI, Docker Daemon, Buildah và Podman. Hi vọng đó là thông tin hữu ích để mình tiếp tục con đường học tập Kubernetes. Nếu nói về container, các bạn sẽ nghe nhiều về Docker. Nhưng từ version 1.24 thì Kubernetes đã quyết định loại Docker ra khỏi hệ sinh thái. Vậy Docker dùng để build và run container. Vậy nếu loại bỏ Docker, chúng ta có nhiều giải pháp, 1 trong các giải pháp đó là Buildah: dùng để build image theo chuẩn OCI Podman: quản lý container trong pod. Tìm hiểu về OCI, Docker, Buildah, và Podman Open Container Initiative (OCI) Trở lại năm 2015, một công ty có tên CoreOS đã đưa thông số kỹ thuật riêng cho App Container Image (ACI), khác hoàn toàn với đặc điểm kỹ thuật container của Docker. Cũng tại thời điểm đó, xuất hiện phong trào container mới tách rời với các định dạng container cạnh tranh của Linux. Cùng năm đó, một sáng kiến có tên Open Container Project (OCP) đã ra đời và sau đó đổi tên thành Open Container Initiative (O...