What is docker?
-
Là một dự án mã nguồn mở.
-
Triển khai các ứng dụng (application) của windown hoặc linux trong các container ảo hóa.
-
Cung cấp lớp trừu tượng và tự động ảo hóa dựa tren linux.
-
Sự dụng các tài nguyên cô lập của linux như cgroups, kernel, quản lý tệp để cho phép các container chạy độc lập bên trong một thực thể Linux.
-
Giúp ích cho việc quản trị dễ dàng hơn.
-
Cho phép đóng gói và phân phối cùng các tài nguyên trong định dạng chuẩn là container
-
Giảm chi phí vận hành so với truyền thống.
Ưu đỉểm
- Các thay đổi được lưu trữ trong các Docker image, các lớp tệp hệ thống được tạo ra và lưu lại dựa theo từng lớp (layer). Điều này giúp cho ảnh Docker giảm dung lượng đáng kể so với máy ảo (VM).
Các thành phần của docker:
- Docker Engine: dùng để tạo ra Docker image và chạy Docker container.
- Docker Hub: dịch vụ lưu trữ giúp chứa các Docker image.
- Docker Machine: tạo ra các Docker engine trên máy chủ.
- Docker Compose: chạy ứng dụng bằng cách định nghĩa cấu hình các Docker container thông qua tệp cấu hình
- Docker image: một dạng tập hợp các tệp của ứng dụng, được tạo ra bởi Docker engine. Nội dung của các Docker image sẽ không bị thay đổi khi di chuyển. Docker image được dùng để chạy các Docker container.
- Docker container: một dạng runtime của các Docker image, dùng để làm môi trường chạy ứng dụng.
- Docker container
- Sinh ra từ docker Image
- Các thao tác:
- Create
- start
- stop
- Move
- delete
- Lưu trạng thái của container thành 1 image
- Docker Images
-
Là một "read-only" template để tạo ra docker-container. Nó giống như tập các thư viện hệ thống, công cụ, file được gói vào trong một DOcker Image như một môi trường phát triển. Ví dụ:
- một image chứa ubuntu cài sẵn java.
-
Các đặc điểm:
- Từ docker image có thể tạo container nhờ DOcker engine.
- Các image ở dạng chỉ đọc
- Có thể tự tạo 1 image
- Một image có thể tạo từ nhiều image khác.
- Docker file
- Là file chứa đặc tả về môi trường phần mềm.
- Là một file chứa tập hợp các lệnh Để docker thực hiện đóng gói vào 1 image theo yêu cầu.
- Docker-compose
- Là công cụ để định nghĩa khởi chạy nhiều container Docker application.
- Trong compose dùng một câu lệnh tạo và khởi động toàn bộ service phục vụ việc chạy ứng dụng.
Các bước sử dụng cơ bản:
- Khai báo môi trường với dockerfile
- Khai báo các service cần thiết để chạy các ứng dụng trong docker-compose.yml
- Run:*** docker-compose up*** và compose sẽ khởi động, chạy ứng dụng
- Docker Hub
- Dịch vụ cloud chia sẻ các images docker.
- Docker engine
-
Là ứng dụng client server
-
Các thành phần:
- Một máy chủ là một loại trương trình dài, chạy được gọi là daemon( lệnh docker)
- API rest chỉ định cho các giao diênh mà các trương trình có thể sử dụng để nói chuyện với daemon và hướng dẫn nó làm gì
- Giao diện dòng lệnh CLI
- CLI sử dụng API của docker thông qua kichj bản hoặc các lệnh cli trực tiếp. Nhiều ứng dụng docker khác sử dụng API cơ bản và CLI .
- Docker machine
- Là một provisioning tool để tiếp cận docker. Machine tạo docker engine trên máy bạn hoặc trên bất cứ dịch vụ cloud nào.
- Docker machine sẽ tạo các máy ảo và cài docker engine lên chúng cuối cùng sẽ cấu hình docker client để giao tiếp vói docker engine một cách bảo mật.
- WHy docker?
- Tính di động
- scale tốt:
- vertial (scale up, scale theo chiều dọc)
- Horizontal ( scale out, thoe chieuf ngang.)
-
Scale up là việc tăng trực tiếp sức mạnh tính toán cho từng máy như tăng ram, cpu cho máy chủ. Nhược điểm là có giới hạn
-
Scale out ( vượt ra khỏ giới hạn vật lý)
- Tăng máy chủ chạy song song
- Nếu người dùng tăng đột biến, hệ thống tự động thêm các container và máy chủ phục vụ để đáp ứng nhu cầu nhanh nhất.
-
Dễ dàng và nhanh chóng.

