0

Tìm hiểu về docker

1.Docker overview

Docker là một open platform cho việc developing, shipping và tiến hành chạy các ứng dụng. Docker cho phép bạn tách các ứng dụng ra khỏi cơ sở hạ tầng giúp cho việc phân phối phần mềm một cách nhan chóng. Với Docker bạn có thể quản lý cơ sở hạ tầng của mình như cách mà bạn quản lý các ứng dụng. Bằng cách tận dụng các Docker’s methodologies cho việc shipping, testing và deploy code một cách nhanh chóng, bạn có thể giảm đáng kể độ trễ giữa việc code và running nó trên production.

2.The Docker platform

Docker cung cấp khả năng đóng gói và run ứng dụng trong một môi trường độc lập gọi là container. Isolation and security cho phép bạn có thể chạy đồng thời nhiều container trên cùng một host (máy chủ). Các containers nhẹ và chứa mọi thứ cần thiết để chạy ứng dụng vì vậy bạn không vần phải dựa vào những gì hiện đang được cài đặt trên máy chủ. Bạn có thể dễ dàng chia sẽ các container trong khi làm việc và phải đảm bảo rằng mọi thứ bạn chia sẽ đều có cùng một container hoạt động theo cùng một cách.

Docker cung cấp tool và platform để quản lý vòng đời container của bạn:

  • Phát triển ứng dụng của bạn và các thành phần hỗ trợ bằng cách sử dụng các container
  • Container trở thành unit for distributing và testing your application
  • Khi bạn đã sẵn sàng, hãy triển khai ứng dụng của bạn vào môi trường production dưới dạng container hoặc một orchestrated service. Điều này hoạt động giống nhau cho dù môi trường của bạn ở local.

3. What can I use Docker for?

3.1. Phân phối nhanh chóng, nhất quán các ứng dụng của bạn

Docker hợp lý hóa vòng đời phát triển bằng cách cho phép developers làm việc trong môi trường tiêu chuẩn hóa bằng cách sử dụng các local container. Các container là lựa chọn tuyệt vời để tích hợp CI/CD.

3.2. Responsive deployment and scaling

Docker có thể chạy trên local laptop, máy vật lý (physical) hoặc virtual machines (máy ảo) hoặc tronh nhiều môi trường khác nhau. Tính portability và lightweight của Docker cũng giúp bạn dễ dàng quản lý khối lượng công việc, mở rộng hoặc cắt giảm các ứng dụng và dịch vụ trong nhu cầu kinh doanh.

3.2.Chạy nhiều khối lượng công việc hơn trên cùng một hardware

Docker nhẹ và nhanh. Nó cung cấp một giải pháp thay thế khả thi, hiệu quả về chi phí cho các máy ảo dựa trên hypervisor. Docker hoàn hảo cho các môi trường mật độ cao và cho các triển khai vừa và nhỏ, nơi bạn cần làm việc nhiều hơn, ít tài nguyên hơn.

4. Docker architecture

Docker sử dụng kiến trúc client-server. Docker clientsẽ kết nối với Docker daemon, nó sẽ tiến hành build, running và xây dựng Docker container của bạn. Docker client và daemon có thể chạy trên cùng một hệ thống, hoặc bạn có thể kết nối một Docker client trên nền Docker daemon. Docker client và daemon giao tiếp với nhau bằng REST API, UNIX sockets hoặc một network interface. Một Docker client khác đó là Docker Compose cho phép bạn làm việc với các ứng dụng bao gồm một tập hợp các containers.

Docker daemon

Docker daemon lắng nghe các yêu cầu API Docker và quản lý các Docker objects như images, containers, networksvolumes. Một daemon cũng có thể giao tiếp với các daemon khác để quản lý các dịch vụ Docker.

The Docker client

Docker client là cách chính mà nhiều người dùng Docker để tương tác với Docker. Khi bạn sử dụng các lệnh như docker run, client sẽ gửi các lệnh này đến dockered, nó sẽ thực hiện chúng. Docker sử dụng Docker API, Docker client có thể giao tiếp với nhiều hơn một daemon.

Docker registries

Một Docker đăng ký lưu trữ các Docker images. Docker hub là nơi đăng ký công khai mà bất kỳ ai cũng có thể sử dụng và Docker được cấu hình để tìm kiếm các images mặc định trên Docker hub. Bạn cũng có thể đăng ký các images riêng cho mình và tiến hành chạy chúng.

Khi bạn sử dụng docker pull hoặc docker run, các images cần thiết sẽ được pull từ configured registry. Khi bạn sử dụng docker push images của bạn sẽ được push vào configured registry.

Images

Image là một template read-only với các hướng dẫn để tại một Docker container. Thông thường, một image được based dựa trên một image khác với một số tủy chỉnh bổ sung. Ví dụ, bạn có thể tạo một image dựa trên ubuntu image, nhưng cài đặt Apache web server and ứng dụng của bạn, cũng như các chi tiết cấu hình cần thiết để chạy ứng dụng của bạn.

Containers

Container là một instance có thể chạy được của một image. Bạn có thể create, start, stop, move và xóa một container sử dụng Docker API hoặc CLI. Bạn có thể kết nội một container với một hoặc nhiều networks, attach storage vào nó hoặc thậm chí tạo một image mới dựa trên trạng thái hiện tại.

Mặc định, một container được độc lâp với các vùng chứa khác và mày chủ của nó. Bạn có thể kiểm soát mức độ cô lập của network, bộ nhớ, các subsystems của container với container khác hoặc với máy chủ.

Ví dụ, chạy lệnh docker run

Lệnh dưới đây sẽ run một container ubuntu, attaches interactively vào local command-line session và run /bin/bash.

$ docker run -i -t ubuntu /bin/bash

Khi bạn chạy command này, điều sau sẽ xảy ra:

  1. Nếu local bạn không có image ubuntu, Docker sẽ pull nó xuống từ configured registry, như thể bạn đã chạy docker pull ubuntu một cách thủ công.
  2. Docker tạo một container mới, như thể bạn chạy docker container create thủ công.
  3. Docker phân bổ tệp read-write cho container, làm lớp cuối cùng của nó. Điều này cho phép một container đang running có thể tao hoặc modify files và thư mục trong trong local filesystem.
  4. Docker tạo một network interface để kết tối container với network mặc định. Điều này bao gồm việc gán IP cho container. Mặc định, container có thể kết nối với network bên ngoài bằng cách kết nối network của máy chủ.
  5. Docker khởi động container và thực thi /bin/bash. Vì container có thể running và được gắn vào thiết bị đầu cuối của bạn (do flag -i và -t).
  6. Khi bạn gõ exit để kết thúc lệnh /bin/bash, container sẽ dừng lại nhưng không bị remove. Bạn có thể start howcj remove nó.

5. Kết luận

Cảm ơn bạn đã lắng nghe bài viết của mình. Hy vọng những chia sẽ trên góp phần nào giúp bạn hiểu sơ bộ về Docker và tác dụng của nó. Hẹn gặp lại các bạn vào bài viết tiếp theo nhé!!!

Tham khảo

https://docs.docker.com/get-started/overview/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí