Docker là gì? Tìm hiểu cách hoạt động và cài đặt Docker

Docker là gì? Tìm hiểu cách hoạt động và cài đặt Docker

Tác giả: Admin
17:11 21/11/2024

Docker là gì? Đây là công cụ giúp lập trình viên đóng gói và triển khai ứng dụng một cách đơn giản, nhanh chóng và đồng nhất các môi trường trên nhiều server khác nhau. Đặc biệt trong các dự án phần mềm có nhiều thành phần và yêu cầu tính linh hoạt, hiệu suất cao. Cùng chúng tôi tìm hiểu khái niệm Docker, cách hoạt động và hướng dẫn cài đặt chi tiết nhé. 

Docker là gì?

Docker là một dự án mã nguồn mở hỗ trợ triển khai tự động các ứng dụng trên hệ điều hành Linux và Windows vào các container ảo hóa. Docker tạo ra một lớp trừu tượng cho phép ảo hóa hệ thống dựa trên Linux, từ đó hỗ trợ việc xây dựng (build), triển khai (deploy) và vận hành (run) ứng dụng dễ dàng, ổn định và nhất quán các môi trường trên nhiều Server khác nhau.

Docker là gì?
Docker là gì?

Lịch sử hình thành Docker

Docker được tạo ra bởi Solomon Hykes vào năm 2013 khi ông đang làm việc tại công ty dotCloud ở Pháp. Ban đầu đầu đây chỉ là dự án nội bộ giải quyết vấn đề triển khai ứng dụng nhanh chóng và nhất quán giữa các môi trường. 

13/3/2013: Khi nhận thấy tiềm năng to lớn ông đã quyết định chia sẻ công cụ này dạng mã nguồn mở. Docker nhanh chóng được chia sẻ và lan rộng trong cộng đồng lập trình, trở thành một trong top 20 những dự án nổi bật trên GitHub chỉ sau vài năm ra mắt với 6.800 fork và 11.00 lập trình viên.

2/2016: Docker được giới thiệu sản phẩm thương mại đầu tiên với tên gọi là Docker Enterprise Edition.

Hiện nay, cộng đồng mã nguồn mở Docker bao gồm: Hơn 3.300 người đóng góp; hơn 43.000 lượt gắn sao; hơn 12.000 nhánh (forks).

Lịch sử hình thành Docker
Lịch sử hình thành Docker

Docker Container là gì?

Tương tự như Kubernetes, Container là những gói phần mềm nhỏ gọn giúp đóng gói đầy đủ mọi thành phần cần thiết của ứng dụng như thư viện, mã nguồn và công cụ đồng nhất và chạy ổn định trên mọi môi trường. Dù cho cấu hình hay cài đặt của máy tính chạy trên Linux khác với máy được sử dụng viết code ban đầu thì ứng dụng vẫn có thể hoạt động bình thường.

Ưu điểm của Docker

Ưu điểm của Docker
Ưu điểm của Docker

Docker sở hữu nhiều ưu điểm nổi bật mang đến lợi ích vượt trội giúp đơn giản hóa việc phát triển và vận hành ứng dụng. Dự án mã nguồn mở này trở thành công cụ không thể thiếu trong thế giới công nghệ hiện đại:

  • Tốc độ: Bạn có thể tạo và chạy container chỉ với vài giây bởi Docker container rất nhẹ và khởi tạo cực nhanh. Từ đó giúp đẩy nhanh quá trình phát triển và thử nghiệm phần mềm.
  • Hiệu suất cao: Các container chia sẻ chung hệ điều hành Kernel nên sẽ giảm thiểu tài nguyên, tăng hiệu suất hơn khi sử dụng so với các máy ảo truyền thống trước đây là VMs.
  • Tiết kiệm chi phí: Do sử dụng tài nguyên ít hơn, hiệu quả hơn và khởi tạo nhanh nên Docker giúp giảm thiểu chi phí hạ tầng đáng kể.
  • Tính ứng dụng dễ dàng: Docker cho phép lập trình viên và quản trị viên hệ thống sử dụng dễ dàng, đóng gói ứng dụng trên máy tính cá nhân và chạy trên nhiều môi trường khác nhau.
  • Môi trường mở rộng: Docker hỗ trợ chia nhỏ ứng dụng thành nhiều container riêng biệt với mỗi container chứa database, cache, ứng dụng. Sau đó Docker liên kết các container này lại tạo thành một ứng dụng giúp dễ dàng mở rộng, nâng cấp hoặc thay thế từng thành phần.
  • Quản lý các phụ thuộc ứng dụng dễ dàng: Docker đảm bảo không có lỗi hay các xung đột phiên bản với nhau và chạy cực kỳ ổn định trên mọi môi trường.

Cách hoạt động của Docker

Cách hoạt động của Docker
Cách hoạt động của Docker

Quy trình Docker hoạt động được chia thành 3 bước chính từ lúc Build đến Push và Pull, Run ứng dụng: 

Build Dockerfile

Bạn cần tạo một tệp Dockerfile chính là code đã viết phần mềm. Sau đó, sử dụng máy tính đã cài đặt Docker Engine để Build Dockerfile. Kết quả sau khi Build ta có được Container chứa ứng dụng kèm bộ thư viện.

Push Container

Bước tiếp theo chúng ta Push Container đã Build này lên Cloud và lưu lại. Việc này giúp bạn lưu trữ và chia sẻ container dễ dàng hơn, đặc biệt là các dự án nhóm.

Pull, Run Container

Nếu như máy tính khác mà muốn sử dụng Container đã build này thì bạn cần thực hiện Pull Container này về máy tính đã được cài Docker Engine. Tiếp đến thực hiện Run Container bằng lệnh docker run là có thể khởi chạy ứng dụng với đầy đủ môi trường như ban đầu nhanh chóng, ổn định và đồng nhất.

Hướng dẫn cài đặt Docker

Hướng dẫn cài đặt Docker
Hướng dẫn cài đặt Docker

Việc cài đặt Docker khá đơn giản bởi công cụ này đã cung cấp bộ cài đặt riêng cho từng nền tảng. Dưới đây là hướng dẫn chi tiết cài đặt Docker trên các hệ điều hành phổ biến như Windows, MacOS, Linux.

Cài đặt Docker trên Windows

Bước 1: Truy cập https://docs.docker.com/desktop/

Bước 2: Chọn Install Docker Desktop on Windows.

Cài đặt Docker trên Windows
Cài đặt Docker trên Windows

Bước 3: Nhấn đúp vào file Docker Desktop Installer.exe đã tải về và cài đặt. Mặc định Docker sẽ được cài tại C:\Program Files\Docker\Docker.

Bước 4: Nếu máy tính hỗ trợ cả WSL 2 và Hyper-V thì bạn nên chọn WSL 2 vì hiệu suất tốt hơn. Nếu không cho phép tùy chọn thì Docker sẽ tự động chọn Hyper - V.

Tùy chọn WSL 2 hoặc Hyper-V
Tùy chọn WSL 2 hoặc Hyper-V

Bước 5: Tiếp tục làm theo các hướng dẫn để hoàn tất cài đặt.

Cài đặt Docker trên MacOS

Bước 1: Truy cập https://docs.docker.com/desktop/

Bước 2: Chọn Install Docker Desktop on Mac.

Cài đặt Docker trên MacOS
Cài đặt Docker trên MacOS

Bước 3: Nhấn đúp vào file Docker.dmg đã tải và kéo biểu tượng Docker vào thư mục Applications để tiến hành cài đặt. Docker mặc định sẽ được lưu trong /Applications/Docker.app.

Kéo biểu tượng Docker vào thư mục Applications
Kéo biểu tượng Docker vào thư mục Applications

Cài đặt Docker trên Linux

Bước 1: Truy cập https://docs.docker.com/desktop/

Bước 2: Chọn Install Docker Desktop on Linux.

Bước 3: Tải gói cài đặt phù hợp với bản phân phối Linux của bạn (Ubuntu, Fedora, Debian,...). Sau đó làm theo hướng dẫn cài đặt trên trang chính thức.

Bước 4: Sau khi cài đặt xong khởi động Docker và kiểm tra trạng thái bằng lệnh sudo systemctl status docker đảm bảo Docker đang hoạt động.

Cài đặt Docker trên Linux
Cài đặt Docker trên Linux

Để kiểm tra Docker đã cài đặt thành công hay chưa bạn cần mở command line và gõ lần lượt các câu lệnh:

$ docker version

Lệnh này hiển thị thông tin phiên bản Docker đã cài đặt.

$ docker info

Lệnh này cung cấp thông tin chi tiết về Docker Engine và cấu hình hiện tại.

$ docker run hello-world

Lệnh này sẽ tải về và chạy một container thử nghiệm nếu Docker hoạt động đúng sẽ thông báo chào mừng thành công.

Một số khái niệm liên quan đến Docker

Một số khái niệm cần nắm về Docker
Một số khái niệm cần nắm về Docker

Để hiểu rõ được cách hoạt động Docker và ứng dụng trong thực tế hiệu quả hơn bạn cần nắm được một số các khái niệm dưới đây:

    • Docker Engine: Thành phần cốt lõi của Docker giúp xây dựng, chạy và quản lý các container, đảm bảo tính nhất quán giữa các môi trường trên những server khác nhau.
    • Docker Client: Công cụ kết nối người dùng với Docker Host sử dụng dòng lệnh CLI.
    • Docker Daemon: Là tiến trình chạy ngầm tiếp nhận và xử lý các yêu cầu từ Docker Client. Đồng thời chịu trách nhiệm quản lý container, network, image và volumes thông qua REST API.
    • Dockerfile: Là một tập tin hướng dẫn, mô tả cách để xây dựng một Docker Image như cài đặt gói, thiết lập môi trường, copy file,...
    • Image: Là nền tảng quan trọng dùng để tạo Container.
    • Container: Là một phiên bản đang hoạt động của Docker Image. Nó có thể được tạo, khởi động, dừng, xóa hoặc nhân bản thông qua API hoặc Docker CLI.
    • Docker Volumes: Là phần dữ liệu được tạo ra khi chúng ta khởi tạo một container. Nó hoạt động theo cơ chế dữ liệu ngoài container nên giúp lưu giữ lại dữ liệu ngay cả khi container bị xóa hoặc khởi động lại.
    • Docker Networking: Công cụ cho phép kết nối các container với nhau trên 1 host hoặc nhiều host.
    • Docker Hub: Là kho lưu trữ hình ảnh Docker trực tuyến. Tại đây bạn có thể tìm kiếm, tải về hoặc đẩy lên các Docker Image nhanh chóng.
    • Docker Repository: Là tập hợp các phiên bản khác Tag nhau của một Docker Image. Ví dụ như node:16-alpine, node:18.
    • Docker Compose: Công cụ này có sẵn khi cài Docker cho phép chạy nhiều container cùng lúc và định nghĩa cấu hình các container thông qua các lệnh được viết trong file docker-compose.yml.
  • Docker Services: Công cụ giúp quản lý nhiều container giống nhau trong Swarm. Định nghĩa cách chạy (image, port, số lượng bản sao container) và tự phục hồi khi có lỗi.
  • Docker Swarm: Công cụ tích hợp giúp triển khai và quản lý cụm container trên nhiều node nhằm đảm bảo hiệu suất cao.

Một số câu lệnh cơ bản trong Docker

Dưới đây là một số câu lệnh Docker cơ bản mà bạn sẽ thường xuyên sử dụng khi làm việc, giúp bạn thao tác hiệu quả và vận hành ứng dụng bằng Docker dễ dàng, nhanh chóng:

Câu lệnh Docker

Chức năng

$ docker ps a

Liệt kê tất cả container (kể cả đã dừng)

$ docker image/container ls

Liệt kê danh sách image / container đang hoạt động

$ docker run name <tên container> <tên image>

Tạo container từ image, đặt tên cụ thể

$ docker run -d <tên image>

Tạo container chạy ngầm (background)

$ docker stop <tên container>

Dừng 1 container

$ docker start <tên container>

Khởi động container đã bị tạm dừng

$ docker logs <tên container>

Xem log container

$ docker pull <tên image>

Tải image từ Docker Hub

$ docker build -t <tên container> .

Build image từ Dockerfile

$ docker image rm $(docker images a q)

Xóa tất cả image

$ docker stop $(docker ps a q)

Dừng tất cả container

$ docker rm $(docker ps a q)

Xóa tất cả container

 

Docker giúp đơn giản hóa việc xây dựng và vận hành ứng dụng công nghệ Container. Hy vọng với những chia sẻ của FPT Cloud về khái niệm Docker là gì và tất cả các kiến thức liên quan đến Docker đã mang đến thông tin hữu ích cho bạn đọc. Liên hệ ngay với FPT Cloud để được tư vấn và trải nghiệm nhé.