Hướng dẫn sử dụng Docker cho người mới bắt đầu: Khái niệm cơ bản, Archikiến trúc, container
⚡ Tóm tắt thông minh
Docker là một nền tảng container hóa dùng để đóng gói các ứng dụng và các thành phần phụ thuộc của chúng vào các container nhẹ và dễ di chuyển. Bài tổng quan này giải thích về kiến trúc Docker, cài đặt và... UbuntuCác lệnh thiết yếu và sự khác biệt giữa container và máy ảo truyền thống để tăng tốc độ phân phối phần mềm.

Docker là một trong những nền tảng container hóa phổ biến nhất được sử dụng trong công nghệ hiện đại. DevOps và quy trình làm việc trên đám mây. Hướng dẫn Docker dành cho người mới bắt đầu này giải thích Docker là gì, kiến trúc Docker hoạt động như thế nào, cách cài đặt Docker trên... Ubuntuvà các lệnh cơ bản được sử dụng để quản lý hình ảnh và vùng chứa.
Docker là gì?
phu bến tàu Docker là một nền tảng phát triển phần mềm ảo hóa cho phép nhiều hệ điều hành chạy trên cùng một máy chủ. Nó giúp bạn tách biệt cơ sở hạ tầng khỏi ứng dụng để có thể phân phối phần mềm nhanh chóng. Không giống như các hypervisor được sử dụng để tạo máy ảo (VM), Docker thực hiện ảo hóa ở cấp độ hệ thống bằng cách sử dụng các đơn vị được gọi là container Docker.
Các container Docker chạy trên hệ điều hành của máy chủ, như hình ảnh bên dưới. Điều này giúp cải thiện cả hiệu quả và bảo mật. Bạn cũng có thể chạy nhiều container hơn máy ảo trên cùng một cơ sở hạ tầng, vì container sử dụng ít tài nguyên hơn.

Không giống như máy ảo (VM), có thể giao tiếp trực tiếp với phần cứng máy chủ (ví dụ: bộ điều hợp Ethernet tạo ra nhiều bộ điều hợp ảo hơn), các container Docker chạy trong một môi trường biệt lập trên hệ điều hành máy chủ. Ngay cả khi máy chủ của bạn chạy... Windows, bạn có thể chạy Linux hình ảnh bên trong các vùng chứa với sự trợ giúp của Hyper-V, chức năng này tự động tạo một máy ảo nhỏ để ảo hóa ảnh gốc.
Giờ bạn đã biết Docker là gì, hãy cùng xem xét những lý do chính khiến các nhóm lựa chọn nó.
Tại sao nên sử dụng Docker?
Dưới đây là những lý do chính để sử dụng Docker:
- Docker là phần mềm được sử dụng để ảo hóa, cho phép tạo nhiều máy ảo. các hệ điều hành để chạy trên cùng một máy chủ.
- Docker là một ứng dụng client-server, có nghĩa là các client giao tiếp với máy chủ.
- Ảnh Docker đóng vai trò như "mã nguồn" cho các container; bạn sử dụng chúng để xây dựng.
- Docker hỗ trợ hai loại registry: công cộng và riêng tư.
- Container là đơn vị tổ chức của Docker. Nói một cách đơn giản, image là một mẫu và container là một bản sao của mẫu đó, vì vậy bạn có thể chạy nhiều container từ cùng một image.
Những lợi ích này đến từ cách thức thiết kế của Docker. Phần tiếp theo sẽ phân tích kiến trúc Docker và các thành phần cốt lõi của nó.
phu bến tàu Archikiến trúc
Bây giờ, trong hướng dẫn về container Docker này, chúng ta hãy cùng xem xét các thành phần chính của kiến trúc Docker.
Công cụ Docker
Docker là một ứng dụng máy khách-máy chủ, có nghĩa là chúng ta có các máy khách chuyển tiếp yêu cầu đến máy chủ. Trình nền Docker, được gọi là dockerd, là công cụ Docker đại diện cho máy chủ. Trình nền và các máy khách có thể chạy trên cùng một máy chủ hoặc máy chủ từ xa, và chúng giao tiếp thông qua một tệp nhị phân máy khách dòng lệnh và một tệp đầy đủ. API RESTful Nó tương tác với dockerd.
Hình ảnh Docker
Ảnh Docker là "mã nguồn" cho các container của chúng ta; chúng ta sử dụng chúng để xây dựng container. Ảnh có thể đã được cài đặt sẵn phần mềm, giúp tăng tốc quá trình triển khai. Chúng có tính di động cao, và bạn có thể sử dụng các ảnh hiện có hoặc tự xây dựng ảnh của riêng mình.
Đăng ký Docker
Docker lưu trữ các image mà chúng ta xây dựng trong các registry. Có các registry công cộng và riêng tư. Docker có một registry công cộng gọi là Trung tâm DockerNơi bạn cũng có thể lưu trữ hình ảnh một cách riêng tư. Docker Hub có hàng triệu hình ảnh mà bạn có thể bắt đầu sử dụng ngay lập tức.
Docker Container
Container là đơn vị tổ chức của Docker và là một trong những khái niệm cơ bản của nó. Khi chúng ta xây dựng và chạy một image, chúng ta đang chạy nó bên trong một container. Sự tương đồng với container được sử dụng vì tính di động của phần mềm chạy bên trong nó: bạn có thể di chuyển, "vận chuyển", sửa đổi, quản lý, tạo hoặc xóa nó, giống như các tàu chở hàng xử lý các container thực tế.
Nói một cách đơn giản, hình ảnh là một mẫu và vùng chứa là bản sao của mẫu đó. Bạn có thể có nhiều vùng chứa (bản sao) của cùng một hình ảnh.
Sự tương tác giữa các thành phần khác nhau này cho thấy công nghệ container Docker hoạt động cùng nhau như thế nào. Các lệnh như `docker pull` và `docker run`, mà chúng ta sẽ đề cập sau, cho phép bạn quản lý quy trình làm việc này.
Với kiến trúc tổng thể đó, chúng ta hãy cài đặt Docker để bạn có thể tự mình trải nghiệm các thành phần này.
Cách cài đặt Docker trên Linux/Ubuntu
Dưới đây là quy trình cài đặt Docker từng bước trên Linux.Ubuntu:
Bước 1) Để cài đặt Docker, bạn cần các gói DEB của nhóm Docker. Trước tiên, cần một số điều kiện tiên quyết. Ubuntu Cần cài đặt các gói phần mềm này. Sử dụng lệnh bên dưới để cài đặt chúng.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*ký hiệu “\” không cần thiết, nó được sử dụng cho dòng mới, nếu muốn bạn có thể viết lệnh mà không cần sử dụng “\” chỉ trên một dòng.
Bước 2) Thêm khóa GPG chính thức của Docker kèm dấu vân tay. Sử dụng lệnh Docker bên dưới để nhập khóa GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Bước 3) Tiếp theo, hãy thêm kho lưu trữ Docker APT bằng lệnh dưới đây.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Bạn có thể được yêu cầu xác nhận rằng bạn muốn thêm kho lưu trữ và tự động thêm khóa GPG vào máy chủ của mình. Lệnh lsb_release sẽ điền thông tin vào... Ubuntu phiên bản phân phối của máy chủ của bạn.
Bước 4) Sau khi thêm khóa GPG, hãy cập nhật nguồn APT bằng lệnh Docker bên dưới.
$ sudo apt-get update
Giờ bạn có thể cài đặt gói Docker.
Bước 5) Sau khi cập nhật nguồn APT, hãy bắt đầu cài đặt các gói Docker trên máy tính. Ubuntu Sử dụng lệnh Docker bên dưới.
$ sudo apt-get install docker-ce
Lệnh trên cài đặt Docker và các gói cần thiết khác. Trước phiên bản Docker 1.8.0, tên gói là lxc-docker, và giữa phiên bản Docker 1.8 và 1.13, tên gói là docker-engine.
LƯU Ý: Docker cho Windows đòi hỏi Windows 10 Pro hoặc Enterprise phiên bản 14393, hoặc Windows Cần chạy Server 2016 RTM.
Cách sử dụng Docker bằng các lệnh Docker cơ bản
Dưới đây là cách sử dụng Docker với một vài lệnh Docker cơ bản.
Như đã đề cập trước đó, lệnh cơ bản nhất bạn nên chạy sau khi cài đặt Docker là `docker info`.
$ sudo docker info
Bạn sẽ nhận được kết quả tương tự như sau.
Như ví dụ Docker ở trên cho thấy, chúng ta có thể thấy thông tin về các container Docker: có bao nhiêu container đang chạy, tạm dừng hoặc đã dừng, và có bao nhiêu image đã được tải xuống. Bây giờ, hãy tải image đầu tiên của chúng ta.
$ sudo docker pull alpine
Với lệnh này, chúng ta yêu cầu Docker tải xuống ảnh alpine, lấy từ kho lưu trữ công cộng ở phiên bản mới nhất, phiên bản được thiết lập mặc định.
*alpine là hình ảnh Docker tối thiểu dựa trên Alpine Linux với chỉ mục gói hoàn chỉnh và kích thước chỉ 5 MB.
Nếu muốn chạy ảnh dưới dạng container, ta sử dụng lệnh sau.
$ sudo docker run -i -t alpine /bin/bash
Chạy lệnh này sẽ đưa chúng ta trực tiếp đến terminal Alpine. Cờ -i giữ cho STDIN luôn mở từ container ngay cả khi bạn không kết nối với nó; đầu vào chuẩn liên tục này là một nửa những gì bạn cần cho một shell tương tác. Cờ -t là nửa còn lại và hướng dẫn Docker gán một pseudo-tty cho container. Cả hai cùng nhau cung cấp cho chúng ta một shell tương tác trong container mới. Chúng ta thoát khỏi container bằng một lệnh exit đơn giản.
Bây giờ, trong hướng dẫn cơ bản về Docker này, chúng ta có thể thử chạy một lệnh Ubuntu hình ảnh.
$ sudo docker run -it ubuntu /bin/bash
Lưu ý rằng Docker kiểm tra xem ảnh container có sẵn trên máy tính cục bộ hay không, và nếu không có, ảnh sẽ được tự động tải xuống từ thư viện ảnh. Một lần nữa, chúng ta có một giao diện dòng lệnh tương tác đang chạy. Chúng ta cũng có thể đặt tên cho các container khi chạy chúng.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Sau đó chúng ta thoát ra. Chúng ta cũng có thể chạy một container đã tạo trước đó mà không cần shell tương tác.
$ sudo docker start container_name
Và chúng ta dừng container bằng cách gõ lệnh `docker stop container_name`.
$ sudo docker stop container_name
Nếu muốn xem tất cả các container đang chạy, ta chỉ cần chạy lệnh sau.
$ docker ps
Đối với tất cả các container, chúng ta thêm "-a" vào cuối cùng một lệnh, ví dụ như `docker ps -a`. Lệnh này hiển thị ID của container, hình ảnh mà nó sử dụng, thời gian tạo, trạng thái hoạt động, các cổng được mở và một tên được tạo ngẫu nhiên để dễ quản lý hơn.
Khi chạy container, chúng ta thường muốn biết chúng đang sử dụng bao nhiêu tài nguyên. Để làm được điều đó, chúng ta có thể sử dụng lệnh sau.
$ docker stats
Bạn cũng có thể xem những hình ảnh nào bạn đã tải xuống cục bộ, cùng với thông tin về chúng.
$ sudo docker images
Lệnh trong ví dụ Docker ở trên hiển thị từng ảnh Docker với một thẻ (tag) thể hiện phiên bản ảnh, ID ảnh riêng biệt, ngày tạo và kích thước ảnh.
Để hiểu tại sao container lại là một bước cải tiến đáng kể, việc xem xét quá trình phát triển của ảo hóa sẽ rất hữu ích.
Ảo hóa là gì?
Trước đây, việc triển khai một dịch vụ rất chậm và khó khăn. Các nhà phát triển sẽ viết mã, sau đó nhóm vận hành sẽ triển khai nó trên các máy chủ vật lý, nơi họ phải theo dõi các phiên bản thư viện, bản vá lỗi và trình biên dịch ngôn ngữ để đảm bảo mã hoạt động. Nếu có lỗi, quy trình sẽ bắt đầu lại từ đầu: các nhà phát triển sẽ sửa lỗi, và nhóm vận hành sẽ triển khai lại.
Mọi thứ đã được cải thiện với sự ra đời của các hypervisor. Hypervisor chạy nhiều hệ điều hành khác nhau. máy ảohoặc máy ảo (VM) trên cùng một máy chủ, có thể đang chạy hoặc đã tắt. Máy ảo giúp giảm đáng kể thời gian chờ đợi để triển khai mã và sửa lỗi, nhưng yếu tố thay đổi cuộc chơi thực sự là các container Docker.
Sự phổ biến của Docker cũng được thúc đẩy bởi các công cụ điều phối giúp quản lý container ở quy mô lớn, chẳng hạn như... KubernetesTrước khi tiếp tục, đây là bảng tóm tắt nhanh các lệnh Docker quan trọng nhất.
Các lệnh Docker quan trọng
Dưới đây là các lệnh Docker quan trọng:
| Lệnh | Mô tả Chi tiết |
|---|---|
| thông tin docker | Lệnh thông tin |
| kéo docker | Tải xuống một hình ảnh |
| docker run -i -t image_name /bin/bash | Chạy hình ảnh dưới dạng vùng chứa |
| docker bắt đầu our_container | Bắt đầu vùng chứa |
| docker dừng container_name | Dừng container |
| docker ps | Danh sách tất cả các container đang chạy |
| số liệu thống kê docker | Thông tin vùng chứa |
| ảnh dok | Danh sách hình ảnh đã tải xuống |
| Dọn dẹp Docker | Tiêu diệt tất cả các container đang chạy. |
Ngoài ra, đọc những Câu hỏi và câu trả lời phỏng vấn xin việc Docker Dành cho cả người mới ra trường và những chuyên gia có kinh nghiệm.

