Tìm hiểu về docker
Bài đăng này đã không được cập nhật trong 3 năm
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 client
sẽ 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
, networks
và volumes
. 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:
- Nếu local bạn không có image
ubuntu
, Docker sẽ pull nó xuống từ configured registry, như thể bạn đã chạydocker pull ubuntu
một cách thủ công. - Docker tạo một container mới, như thể bạn chạy
docker container create
thủ công. - 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.
- 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ủ.
- 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). - 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
All rights reserved