fbpx Docker cho người bắt đầu | Công ty thiết kế web chuyên nghiệp Skip to main content
docker

Docker cho người bắt đầu

Docker là gì?

Docker là một nền tảng phát triển phần mềm để ảo hóa với nhiều Hệ điều hành chạy trên cùng một máy chủ. Nó giúp tách 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ư Hypervisors, đượ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à containers Docker.

Như bạn có thể thấy sự khác biệt trong hình ảnh bên dưới, containers Docker chạy trên hệ thống Hoạt động của máy chủ lưu trữ. Đ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 containers trên cùng một cơ sở hạ tầng hơn là chạy các máy ảo vì các vùng chứa sử dụng ít tài nguyên hơn.

Docker

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 nhiều bộ điều hợp ảo hơn), 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 HĐH Windows, bạn vẫn có thể chạy các hình ảnh Linux trong các bộ 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 là 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 Hệ điều hành chạy trên cùng một máy chủ Docker là loại ứng dụng client - server, có nghĩa là chúng tôi có các máy khách chuyển tiếp đến máy chủ
Imges docker là “souce code”  là các vùng chứa của nó; Nó dùng để để xây dựng những ứng 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 Docker volume. Nói một cách đơn giản, một hình ảnh là một mẫu và một vùng chứa là một 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.

Kiến trúc Docker

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

Kiến trúc docker
Kiến trúc docker

Docker Engine

Docker là loại ứng dụng máy Client - Server, 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, Docker daemon được gọi là: dockerd là công cụ Docker đại diện cho máy chủ. Trình nền docker và các ứng dụng khách có thể được chạy trên cùng một máy chủ hoặc từ xa và chúng giao tiếp thông qua tệp nhị phân ứng dụng khách dòng lệnh, cũng như một API RESTful đầy đủ để tương tác với trình nền: dockerd.

Docker Images

Docker images là “souce code” cho các Contrainer của nó; Nó sử dụng chúng để xây dựng các Contrainer n có thể cài đặt sẵn phần mềm để tăng tốc độ triển khai. Chúng có thể mang theo được và có thể sử dụng images  hiện có hoặc xây dựng images của riêng mình.

Docker Registries

Docker lưu trữ những images do nó xây dựng trong registries. Registries công cộng và tư nhân. Công ty Docker có cơ quan đăng ký công cộng được gọi là Docker hub, nơi bạn cũng có thể lưu trữ images một cách riêng tư. Docker hub có hàng triệu images mà bạn có thể bắt đầu sử dụng ngay bây giờ.

Docker Contrainer

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 images và bắt đầu chạy nó; chúng tôi đang chạy nó trong một container. Sự tương tự Container được sử dụng vì tính di động của phần 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ỏ, phá hủy nó, giống như các tàu chở hàng có thể làm với các công-te-nơ thực.

Nói một cách đơn giản, một images là template và một Container là một bản sao của template đó. Bạn có thể có nhiều Container (bản sao) của cùng một images.

Dưới đây chúng ta có một images 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 thức hoạt động của công nghệ bộ chứa Docker.

Những gì chúng ta có một số lệnh docker docker pull, docker run.. chúng ta sẽ nói thêm về điều đó 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 các gói DEB của nhóm Docker.

Đối với điều đó, một số gói Ubuntu tiên quyết là bắt buộc.

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

$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common

*dấu “\” không cần dùng cho dòng mới, nếu muốn bạn có thể viết lệnh mà không cần dùng “\” trên một dòng duy nhất.

Bước 2) Thêm khóa Docker GPG 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 sẽ tự động được thêm vào máy chủ của bạn.

Lệnh lsb_release sẽ điền phiên bản phân phối Ubuntu của máy chủ của bạn.

Bước 4) Sau khi thêm khóa GPG,

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

$ sudo apt-get update


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

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

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

$ sudo apt-get install docker-ce


Lệnh đã cho ở 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 yêu cầu Windows 10 Pro hoặc Enterprise phiên bản 14393 hoặc Windows server 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 mà 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 đây

Docker

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 docker container bao nhiêu cái đang chạy, tạm dừng hoặc dừng và bao nhiêu 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 tôi 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, để lấy nó từ sổ đăng ký công khai, phiên bản mới nhất được đặt theo mặc định.

*alpine là một 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 tôi muốn chạy hình ảnh dưới dạng vùng chứa, chúng tôi sẽ sử dụng lệnh sau trong hướng dẫn hướng dẫn 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 được đính kèm vào vùng chứa. Đầ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 đối với 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 pseudo-tty cho vùng chứa. Điều này cung cấp cho chúng tôi một trình bao tương tác trong vùng chứa mới. Chúng tôi thoát khỏi vùng chứa 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 hình ảnh Ubuntu.

$ 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 trình bao tương tác đang chạy. Chúng tôi cũng có thể đặt tên cho các thùng chứa khi chúng tôi 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 container viết docker stop container_name

$ sudo docker stop container_name


Nếu chúng ta 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 lệnh này, chẳng hạn như docker ps -a này.

Lệnh này hiển thị ID của Vùng chứa, hình ảnh 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 vùng chứa để quản lý dễ dàng hơn.

Khi chúng tôi chạy các vùng chứa, chúng tôi 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 tôi 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ụ Docker ở trên hiển thị hình ảnh docker với thẻ hiển thị phiên bản hình ảnh của chúng tôi, ID hình ảnh đặc biệt, khi đượ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 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á lỗi và trình biên dịch ngôn ngữ để mã hoạt động. Nếu có một số lỗi hoặc sai sót, 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 ở đó để triển khai.


Có một sự cải tiến với việc tạo ra Hypervisors. Hypervisors có nhiều máy ảo hoặc máy ảo trên cùng một máy chủ, có thể đang chạy hoặc tắt. Máy ảo đã 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à bộ chứa Docker.

Các lệnh Docker quan trọng
Dưới đây là các lệnh Docker quan trọng:

Docker command line

 

About

Công ty thiết kế web app chuyên thiết kế web và các dịch vụ maketing digital, seo, google adword...