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

Docker là gì?

phu bến tàu là một nền tảng phát triển phần mềm ảo hóa với nhiều Operahệ thống chạy trên cùng một máy chủ. Nó giúp tách biệt cơ sở hạ tầng và ứng dụng để cung cấp phần mềm một cách nhanh chóng. Không giống như Hypervisor, được sử dụng để tạo VM (Máy ảo), ảo hóa trong Docker được thực hiện ở cấp hệ thống, còn được gọi là vùng chứa Docker.

Như bạn có thể thấy sự khác biệt trong hình ảnh bên dưới, các vùng chứa Docker chạy trên máy chủ Operahệ thống hoạt động. Điều này giúp bạn cải thiện hiệu quả và bảo mật. Hơn nữa, chúng ta có thể chạy nhiều container trên cùng một cơ sở hạ tầng hơn là chạy Máy ảo vì các container sử dụng ít tài nguyên hơn.

Ảo hóa trong Docker vs Hypervisor
Ảo hóa trong Docker vs Hypervisor

Không giống như các máy ảo có thể giao tiếp với phần cứng của máy chủ (ví dụ: bộ điều hợp Ethernet để tạo thêm bộ điều hợp ảo), các bộ chứa Docker chạy trong một môi trường biệt lập trên hệ điều hành của máy chủ. Ngay cả khi máy chủ của bạn chạy Windows OS, bạn có thể chạy các ảnh Linux trong các thùng chứa với sự trợ giúp của Hyper-V, tự động tạo VM nhỏ để ảo hóa hình ảnh cơ sở của hệ thống, trong trường hợp này, Linux.

Tại sao nên sử dụng Docker?

  • Docker là phần mềm máy tính được sử dụng cho Ảo hóa để có nhiều Operahệ thống ting chạy trên cùng một máy chủ
  • Docker là loại ứng dụng máy khách-máy chủ, có nghĩa là chúng tôi có các máy khách chuyển tiếp đến máy chủ
  • Hình ảnh Docker là “mã nguồn” cho vùng chứa của chúng tôi; chúng tôi sử dụng chúng để xây dựng
  • Dockerfile có hai loại đăng ký 1.) công khai và 2) đăng ký riêng tư
  • Container là đơn vị tổ chức của khối lượng Docker. 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.

phu bến tàu Archikiến trúc

Bây giờ trong hướng dẫn về vùng chứa Docker này, hãy nói về các thành phần chính của Docker trong Docker Archikiến trúc:

phu bến tàu Archikiến trúc
phu bến tàu Archikiến trúc

Công cụ Docker

Docker là loại ứng dụng máy khách-máy chủ, có nghĩa là chúng tôi có các máy khách chuyển tiếp đến máy chủ. Vì vậy, daemon Docker có tên: dockerd là công cụ Docker đại diện cho máy chủ. Trình nền của docker và máy khách có thể được 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 tệp nhị phân của máy khách dòng lệnh, cũng như một bản đầy đủ API RESTful để tương tác với daemon: dockerd.

Hình ảnh Docker

Hình ảnh Docker là “mã nguồn” cho vùng chứa của chúng tôi; chúng tôi sử dụng chúng để xây dựng các thùng chứa. Họ có thể cài đặt sẵn phần mềm để tăng tốc độ triển khai. Chúng có tính di động và chúng ta có thể sử dụng hình ảnh hiện có hoặc xây dựng hình ảnh của riêng mình.

Đăng ký Docker

Docker lưu trữ hình ảnh chúng tôi xây dựng trong sổ đăng ký. Có đăng ký công cộng và tư nhân. Công ty Docker có cơ quan đăng ký công khai được gọi là Trung tâm Docker, nơ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 bây giờ.

Docker Container

Container là đơn vị tổ chức và là một trong những khái niệm cơ bản về Docker. Khi chúng tôi xây dựng một hình ảnh và bắt đầu chạy nó; chúng tôi đang chạy trong một container. Sự tương tự của vùng chứa được sử dụng vì tính di động của phần mềm mà chúng tôi đang chạy trong vùng chứa của mình. Nói cách khác, chúng ta có thể di chuyển nó, “vận chuyển” phần mềm, sửa đổi, quản lý, tạo hoặc loại bỏ nó, phá hủy nó, giống như những con tàu chở hàng có thể làm với các container thậ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.

Dưới đây chúng tôi có một hình ảnh thể hiện hoàn hảo sự tương tác giữa các thành phần khác nhau và cách hoạt động của công nghệ bộ chứa Docker.

Chúng ta có một số lệnh docker như docker pull, docker run.. chúng ta sẽ nói thêm về chúng sau.

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, chúng ta cần sử dụng gói DEB của nhóm Docker.

Để làm được điều đó, một số điều kiện tiên quyết Ubuntu các gói được yêu cầu.

Sử dụng lệnh dưới đây để cài đặt Ubuntu gói

$ 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 Docker chính thức bằng 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, Thêm kho lưu trữ Docker APT.

Sử dụng lệnh Docker bên dưới để thêm kho lưu trữ

$ sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
$(lsb_release -cs) \
stable"

Bạn có thể được nhắc xác nhận rằng bạn muốn thêm kho lưu trữ và để khóa GPG tự động được thêm vào máy chủ của bạn.

Lệnh lsb_release sẽ điền 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,

Cập nhật nguồn APT bằng lệnh Docker bên dưới

$ sudo apt-get update

Bây giờ chúng ta có thể cài đặt gói Docker.

Bước 5) Khi nguồn APT được cập nhật,

Bắt đầu cài đặt các gói Docker trên Ubuntu sử dụng lệnh Docker bên dưới

$ sudo apt-get install docker-ce

Lệnh nêu trên sẽ cài đặt Docker và các gói cần thiết bổ sung khác. Trước Docker 1.8.0, tên gói là lxc-docker và giữa 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 máy chủ 2016 RTM để chạy

Cách sử dụng Docker bằng các lệnh Docker cơ bản

Đây là cách sử dụng Docker bằng các lệnh Docker cơ bản:

Lệnh cơ bản nhất chúng ta phải chạy sau khi cài đặt Docker là $ docker info như chúng ta đã nói trước đây.

$ sudo docker info

Bạn sẽ nhận được kết quả tương tự hoặc sau

Sử dụng Docker bằng các lệnh Docker cơ bản

Như chúng ta có thể thấy trong ví dụ về Docker ở trên, chúng ta có thông tin về các bộ chứa docker có bao nhiêu bộ chứa đang chạy, tạm dừng hoặc dừng và số lượng hình ảnh chúng ta đã tải xuống. Vì vậy, hãy lấy hình ảnh đầu tiên của chúng ta trong hướng dẫn lệnh Docker này.

$ sudo docker pull alpine

Với lệnh này, chúng tôi yêu cầu docker tải xuống hình ảnh Alpine, kéo nó từ sổ đăng ký công khai, phiên bản mới nhất được đặt theo 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 chúng ta muốn chạy hình ảnh dưới dạng một container, chúng ta sẽ sử dụng lệnh sau trong hướng dẫn sử dụng Docker này.

$ sudo docker run -i -t alpine /bin/bash

Nếu chúng tôi chạy lệnh, chúng tôi sẽ được gửi trực tiếp đến thiết bị đầu cuối của Alpine. Cờ -i giữ STDIN mở từ vùng chứa, ngay cả khi bạn không gắn vào nó. Đầu vào tiêu chuẩn liên tục này là một nửa những gì bạn yêu cầu cho một trình bao tương tác. Cờ -t là nửa còn lại và hướng dẫn Docker gán một giả cho vùng chứa. Điều này cung cấp cho chúng ta một lớp vỏ tương tác trong vùng chứa mới. Chúng tôi thoát khỏi container bằng một lệnh thoát đơ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 Ubuntu hình ảnh.

$ sudo docker run -it ubuntu /bin/bash

Bạn có thể nhận thấy docker kiểm tra hình ảnh cục bộ và nếu nó không có ở đó, hình ảnh sẽ tự động được lấy từ thư viện hình ảnh và một lần nữa chúng ta có một shell 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

và chúng tôi thoát ra một lần nữa.

Chúng tôi cũng có thể chạy vùng chứa mà chúng tôi đã tạo trước đó mà không cần trình bao tương tác.

$ sudo docker start container_name

Và dừng việc ghi container docker stop container_name

$ sudo docker stop container_name

Nếu muốn xem tất cả các container đang chạy, chúng ta chỉ cần chạy

$ docker ps

Và đối với tất cả các vùng chứa, chúng tôi thêm “- a” vào cuối cùng lệnh này, giống như docker ps -a này.

Lệnh này hiển thị ID của Container, image nào đang sử dụng khi được tạo, trạng thái đang chạy, các cổng được hiển thị và tên được tạo ngẫu nhiên cho container để quản lý dễ dàng hơn.

Khi chạy các container, chúng ta cũng muốn biết chúng đang sử dụng bao nhiêu tài nguyên, vì mục đích đó chúng ta có thể sử dụng lệnh.

$ docker stats

Bạn cũng có thể xem những hình ảnh nào chúng tôi đã tải xuống cục bộ và thông tin về chúng.

$ sudo docker images

Lệnh trong ví dụ về Docker ở trên hiển thị hình ảnh docker với một thẻ hiển thị phiên bản hình ảnh của chúng tôi, ID hình ảnh đặc biệt, thời điểm được tạo và kích thước hình ảnh.

Ảo hóa là gì?

Trước đó, quá trình triển khai một dịch vụ diễn ra chậm chạp và khó khăn. Đầu tiên, các nhà phát triển đang viết mã; sau đó nhóm vận hành sẽ triển khai nó trên các máy kim loại trần, nơi họ phải tìm kiếm các phiên bản thư viện, bản vá và trình biên dịch ngôn ngữ để mã hoạt động. Nếu có một số lỗi hoặc lỗi, quy trình sẽ bắt đầu lại từ đầu, các nhà phát triển sẽ sửa nó và sau đó nhóm vận hành lại có mặt để triển khai.

Đã có sự cải tiến với việc tạo ra Hypervisors. Hypervisor có nhiều Máy ảo hoặc các máy ảo trên cùng một máy chủ, có thể đang chạy hoặc bị tắt. Máy ảo đã giảm đáng kể thời gian chờ triển khai mã và sửa lỗi, nhưng yếu tố thay đổi cuộc chơi thực sự chính là các vùng chứa Docker.

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 Câu hỏi và câu trả lời phỏng vấn xin việc Docker dành cho những người mới ra trường cũng như những người có kinh nghiệm.

Tổng kết

  • Docker là một nền tảng phát triển phần mềm ảo hóa với nhiều Operahệ thống chạy trên cùng một máy chủ. Nó giúp tách biệt cơ sở hạ tầng và ứng dụng để cung cấp phần mềm một cách nhanh chóng.
  • phu bến tàu Archikiến trúc: Docker Engine, Docker Images, Docker Registries, Docker Container.
  • Công cụ Docker: Docker là loại ứng dụng máy khách-máy chủ, có nghĩa là chúng tôi có các máy khách chuyển tiếp đến máy chủ. Vì vậy, daemon Docker có tên: dockerd là công cụ Docker đại diện cho máy chủ.
  • Hình ảnh Docker: Hình ảnh Docker là “mã nguồn” cho vùng chứa của chúng tôi; chúng tôi sử dụng chúng để xây dựng các thùng chứa. Họ có thể cài đặt sẵn phần mềm để tăng tốc độ triển khai. Chúng có tính di động và chúng ta có thể sử dụng hình ảnh hiện có hoặc xây dựng hình ảnh của riêng mình.
  • Đăng ký Docker: Docker lưu trữ hình ảnh chúng tôi xây dựng trong sổ đăng ký. Có đăng ký công cộng và tư nhân. Công ty Docker có cơ quan đăng ký công khai được gọi là Docker hub, nơ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 bây giờ.
  • Bộ chứa Docker: Container là đơn vị tổ chức và là một trong những khái niệm cơ bản về Docker. Khi chúng tôi xây dựng một hình ảnh và bắt đầu chạy nó; chúng tôi đang chạy trong một container. Sự tương tự của vùng chứa được sử dụng vì tính di động của phần mềm mà chúng tôi đang chạy trong vùng chứa của mình.