Việc cài Docker rất khác nhau tùy các hệ điều hành mà bạn đang sử dụng ví dụ như Windows, Linux hay là Mac OS. Bài viết này dành cho những bạn đã, đang hoặc sẽ sử dụng Docker trong công việc của mình.
Vậy Docker là gì? Các thành phần cơ bản của Docker. Chức năng, vai trò của Docker ra sao? Cách cài đặt Docker là gì? Vì vậy những người mới làm quen với Docker nên tìm hiểu trước rồi quay lại. Cùng InterData.vn tìm hiểu nhé!
Docker là gì?
Docker là nền tảng cung cấp các công cụ, service để các developers, adminsystems có thể được phát triển, thực thi và chạy bằng cách sử dụng các containers. Hay nói cách khác, nó là một nền tảng cung cấp cách thức dễ dàng building, deploy và run các ứng dụng trên nền tảng ảo hóa – “Build once, run anywhere”.

Hay nói một cách đơn giản: khi muốn chạy một app thì chúng ta phải thiết lập môi trường chạy cho nó. Nhưng ta không cài đặt môi trường chạy cho nó mà chạy docker.
Các ứng dụng Docker chạy trong các vùng chứa có thể được sử dụng trên bất kỳ hệ thống nào: laptop của nhà phát triển, hệ thống cục bộ hoặc trên đám mây. Và là công cụ tạo môi trường “đóng gói” (còn gọi là Container) trên máy tính mà không ảnh hưởng đến môi trường hiện tại của máy, các môi trường trong Docker sẽ chạy độc lập.
Docker có thể làm việc trên nhiều nền tảng như Linux, Microsoft Windows và Apple OS X.
Container trong Docker là gì?
Containers cho phép lập trình viên đóng gói một ứng dụng với tất cả các phần cần thiết như thư viện và các phần phụ thuộc khác rồi gói tất cả vào một package
Bằng cách này, với sự trợ giúp của các container, ứng dụng sẽ chạy trên bất kỳ máy Linux nào khác, bất kể máy đó có thể có bất kỳ tùy chỉnh nào khác với máy được sử dụng để viết code. Theo một cách nào đó, Docker rất giống với một virtual machine. Nhưng tại sao Docker lại phát triển và trở nên phổ biến nhanh đến vậy? Đây là lý do tại sao:
- Tính dễ ứng dụng: Docker rất dễ cho mọi người sử dụng từ lập trình viên, sys admin… nó tận dụng lợi thế của container để build, test nhanh chóng. Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud… Câu thần chú là “Build once, run anywhere”.
- Tốc độ: Docker container rất nhẹ và rất nhanh, bạn có thể tạo và chạy docker container trong một vài giây.
- Môi trường chạy và khả năng mở rộng: Bạn có thể phân tách chức năng ứng dụng thành các container riêng biệt. Ví dụ: một ứng dụng Database chạy trên một container, bộ đệm Redis có thể chạy trên một container khác và ứng dụng Node.js chạy trên một container khác. Khi sử dụng Docker, các container có thể dễ dàng scale, update với nhau để tạo thành một ứng dụng, giúp dễ dàng mở rộng quy mô và cập nhật các thành phần một cách độc lập.
Khi các hệ thống lớn chuyển sang microservice, Docker đang trở thành một thành phần cực kỳ quan trọng, khiến nó trở thành một phần của nhiều công cụ DevOps. Hiện nay thế giới đang bắt đầu sử dụng một công cụ quản lý container tiên tiến khác là Kubernetes.
Lý do nên sử dụng Docker
Sau khi hiểu định nghĩa về Docker là gì, có thể bạn vẫn thắc mắc tại sao nền tảng này lại phát triển đến mức như vậy phải không? Đây là lý do tại sao:
Mọi người từ lập trình viên đến sysadmin hệ thống đều có thể tận dụng Docker và họ sẽ tận dụng các vùng chứa để build, test nhanh hơn. Để đóng gói được những ứng dụng laptop của họ và chạy trên public cloud, private cloud,… Tốc độ của Docker vô cùng nhẹ, nhanh chóng nên bạn có thể tạo ra docker container chỉ trong vài giây.
Môi trường chạy và khả năng mở rộng rất tốt và bạn có thể chia tất cả chức năng của ứng dụng thành nhiều container riêng biệt khác nhau. Vì Docker giúp dễ dàng liên kết các container với nhau để tạo thành một ứng dụng nên các thành phần có thể scale, update độc lập.
Docker cũng cung cấp bảo mật cho các ứng dụng chạy trong môi trường dùng chung, nhưng các container không phải là sự thay thế chuyên dụng để thực hiện các biện pháp bảo mật thích hợp này.
Do xu hướng các hệ thống lớn chuyển sang microservice, Docker đã trở thành một thành phần cực kỳ quan trọng, khiến nó trở thành một phần của nhiều công cụ DevOps.
Các thành phần cơ bản của Docker
Docker Engine
Docker engine là một ứng dụng client-server. có 2 phiên bản phổ biến:
Docker Community Edition (CE): Đây là phiên bản miễn phí và phụ thuộc nhiều vào các sản phẩm nguồn mở khác.

Docker Enterprise(EE): Khi sử dụng phiên bản này, bạn sẽ nhận được support từ nhà xuất bản cũng như các tính năng quản lý và security.
Các thành phần chính của docker engine gồm có:
- Server hay còn được gọi là docker daemon: chịu trách nhiệm tạo, quản lý các Docker objects như images, containers, networks, volume.
- REST API: docker daemon cung cấp các api cho Client sử dụng để thao tác với Docker
- Client là thành phần đầu cuối cung cấp một bộ lệnh API để người dùng vận hành Docker.
Distribution tools
Là các công cụ phân tán giúp chúng ta lưu trữ và quản lý các Docker Images như: Docker Registry, Docker Trusted Registry, Docker Hub.
Docker Hub là một công cụ phần mềm dưới dạng dịch vụ cho phép người dùng public hay private các images. Dịch vụ này cung cấp hơn 100.000 ứng dụng có sẵn công khai và các cơ quan đăng ký container công cộng và tư nhân.
Orchestration tools
Docker Machine : Machine tạo Docker Engine trên laptop của bạn hoặc trên bất cứ dịch vụ cloud phổ biến nào như AWS, Azure, Google Cloud, Softlayer hoặc trên hệ thống data center như VMware, OpenStack. Docker Machine sẽ tạo các máy ảo và cài Docker Engine lên chúng và cuối cùng nó sẽ cấu hình Docker Client để giao tiếp với Docker Engine một cách bảo mật
Docker Compose : là công cụ giúp định nghĩa và khởi chạy multi-container Docker applications
Docker Swarm : là một công cụ giúp chúng ta tạo ra một clustering Docker. Nó giúp chúng ta gom nhiều Docker Engine lại với nhau và ta có thể “nhìn” nó như duy nhất một virtual Docker Engine
Bạn có thể sử dụng Docker cho những gì?
Phân phối nhanh các ứng dụng của bạn
Docker đơn giản hóa vòng đời phát triển bằng cách cho phép các nhà phát triển làm việc trong môi trường tiêu chuẩn hóa bằng cách sử dụng các bộ chứa cục bộ để cung cấp ứng dụng và dịch vụ. Các containers lý tưởng cho việc tích hợp liên tục và phát triển liên tục (CI/CD). Hãy xem xét tình huống ví dụ sau:
Developer viết code ở máy local và chia sẻ công việc của họ với đồng nghiệp bằng cách sử dụng containers Docker. Họ sử dụng Docker để đẩy các ứng dụng đến môi trường thử nghiệm và thực hiện thử nghiệm tự động và thủ công. Khi xảy ra lỗi sản phẩm, nhà phát triển có thể fixed trong môi trường phát triển và deploy lại môi trường thử nghiệm để thử nghiệm và xác nhận.
Khi thử nghiệm hoàn tất, việc deploy cho khách hàng đơn giản chỉ cần cách đẩy image được cập nhật lên môi trường production.
Môi trường chạy và khả năng mở rộng.
Docker platform cho phép khối lượng công việc được xử lý theo cách rất portable. Docker contains có thể chạy trên máy ảo hoặc ảo trong trung tâm dữ liệu, trên laptop, nhà cung cấp đám mây hoặc môi trường kết hợp. Docker rất portable và light weight, giúp quản lý khối lượng công việc linh hoạt và dễ dàng scaling quy mô dựa trên tính chất của ứng dụng và dịch vụ sản phẩm.
Chức năng, vai trò của Docker
- Docker giúp phát triển, di chuyển và chạy các ứng dụng dựa trên công nghệ ảo hóa trên Linux.
- Tự động hóa việc triển khai các ứng dụng trong vùng chứa bằng cách cung cấp thêm một lớp ảo hóa cấp độ trừu tượng và tự động hóa (OS) bổ sung Docker có thể được sử dụng trên Windows, Linux, MacOS và các hệ điều hành khác.
Một số lợi ích khi sử dụng docker
- Docker giúp phân phối phần mềm nhanh hơn trung bình 7 lần so với người dùng không sử dụng Docker
- Triển khai, khởi động và di chuyển nhanh chóng.
- Sự an toàn.
- Hỗ trợ API và giao tiếp container.
- Triển khai và khắc phục sự cố phần mềm dễ dàng hơn việc đóng gói nó trong các container nhỏ.
- Tiết kiệm tài nguyên và tiền bạc vì nó giúp chạy nhiều phần mềm hơn trên một máy chủ để tận dụng tối đa tài nguyên.
Cách thức hoạt động của Docker
Docker hoạt động bằng cách cung cấp một phương thức tiêu chuẩn để chạy code. Docker là một hệ điều hành container. Tương tự như cách máy ảo ảo hóa (không quản lý trực tiếp) phần cứng của máy chủ, các container ảo hóa hệ điều hành của máy chủ. Docker được cài đặt trên mọi máy chủ và cung cấp các lệnh đơn giản có thể được sử dụng để xây dựng, khởi động hoặc dừng container.

Các dịch vụ AWS như AWS Fargate, Amazon ECS, Amazon EKS và AWS Batch giúp bạn dễ dàng chạy các container Docker ở quy mô lớn.
Thời điểm nên sử dụng Docker
Bạn có thể sử dụng container Docker làm khối xây dựng cốt lõi để tạo các ứng dụng và nền tảng hiện đại. Docker cho phép xây dựng và chạy các kiến trúc vi dịch vụ phân phối, triển khai mã bằng cách sử dụng các quy trình phân phối và tích hợp liên tục được tiêu chuẩn hóa, xây dựng các hệ thống xử lý dữ liệu có quy mô vòng đời linh hoạt và giúp các nhà phát triển triển khai các nền tảng được quản lý hoàn toàn dễ dàng hơn.
Sự hợp tác gần đây giữa AWS và Docker giúp cho quá trình triển khai các thành phần lạ Docker Compose cho Amazon ECS và AWS Fargate trở nên dễ dàng hơn.
Vi dịch vụ
Sử dụng container Docker để xây dựng và mở rộng quy mô kiến trúc ứng dụng được phân tán với các đơn vị triển khai mã được tiêu chuẩn hóa.

Tích hợp và phân phối liên tục
Tăng tốc phân phối ứng dụng bằng cách chuẩn hóa môi trường của bạn và loại bỏ xung đột giữa các cụm ngôn ngữ và phiên bản.

Xử lý dữ liệu
Cung cấp xử lý dữ liệu lớn như một dịch vụ. Đóng gói dữ liệu và phân tích vào các container di động để người dùng không rành về kỹ thuật có thể thực thi.

Container dưới dạng dịch vụ
Xây dựng và phân phối các ứng dụng phân tán bằng cách sử dụng nội dung và kiến trúc từ quản lý bảo mật và CNTT.
Quy trình thực thi của một hệ thống sử dụng Docker

Như trong hình, một hệ thống Docker được thực thi với 3 bước chính :
BUILD -> PUSH -> PULL,RUN
Build: Đầu tiên tạo một dockerfile, trong dockerfile này chính là code của chúng ta. Dockerfile này sẽ được Build tại một máy tính đã cài đặt Docker Engine. Sau khi build ta sẽ có được Container, trong Container này chứa ứng dụng kèm bộ thư viện.
Push: Sau khi có được Container, ta thực hiện push Container lên cloud và lưu tại đó.
Pull, Run: Nếu một máy tính khác muốn sử dụng Container của ta thì bắt buộc máy phải thực hiện việc Pull container về máy, tất nhiên máy này cũng phải cài Docker Engine. Sau đó thực hiện Run Container.
Cách cài đặt Docker
Sau khi cài đặt thành công WSL2, hãy làm theo các bước sau để cài đặt Docker.
Bước 1: Tải file Docker bằng cách truy cập trang chủ Docker.

Bước 2: Chọn “Use WSL 2 instead of Hyper-V” và nhấn OK.

Bước 3: Sau khi cài đặt xong nhấn “Close and log out”, Save lại công việc đang làm.

Bước 4: Nhấn “Accept”.

Nếu không có gì xảy ra, bạn sẽ có thể truy cập Docker. Nếu phần mềm hiển thị như dưới đây là thành công.

Lưu ý: Docker Desktop khá nhiều lỗi trong quá trình cài đặt và tốn kha khá thời gian để fix.
Bài viết đã nêu tổng quan Docker là gì? Những chức năng, vai trò của Docker ra sao? Cách cài đặt Docker là gì? Nếu có bất kì thắc mắc nào, hãy để lại thông tin bên dưới, InterData.vn sẽ hỗ trợ bạn nhanh nhất.