Docker đã đưa ngành kỹ thuật phần mềm đi như vũ bão và nó không chỉ cách mạng hóa cách chúng tôi vận chuyển và triển khai phần mềm mà còn thay đổi cách các kỹ sư thiết lập môi trường phát triển phần mềm trên máy tính của họ.
Hướng dẫn này chỉ cho bạn cách bắt đầu với Docker bằng cách cài đặt nó trên Ubuntu Linux 20.04 (Focal Fossa), phiên bản Hỗ trợ dài hạn (LTS) mới nhất của Ubuntu tại thời điểm viết bài này.
Ưu điểm của Docker
Docker là một nền tảng mã nguồn mở cho phép bạn tự động hóa và triển khai các ứng dụng dưới dạng các gói độc lập được gọi là vùng chứa. Docker sử dụng công nghệ ảo hóa hệ điều hành nhưng không giống như máy ảo, nó nhẹ hơn nhiều về tài nguyên hệ thống.
Một số ưu điểm chính của Docker bao gồm:
- Tương đối dễ sử dụng và học tập
- Cung cấp một cách triển khai phần mềm nhất quán và dễ dàng
- Tương thích với kiến trúc microservice
- Rất nhẹ về việc sử dụng tài nguyên
Thiết lập kho lưu trữ phần mềm Docker
Có một số phương pháp cài đặt Docker và hướng dẫn này sẽ chỉ cho bạn cách cài đặt Docker từ kho lưu trữ Docker bằng tiện ích lệnh apt. Cài đặt Docker theo cách này cho phép bạn dễ dàng nâng cấp gói Docker trong tương lai và cũng là cách tiếp cận được nhóm Docker đề xuất.
Bước đầu tiên trong quá trình cài đặt là thêm kho phần mềm Docker vào danh sách các nguồn phần mềm của bạn. Bạn sẽ sử dụng kho phần mềm Docker qua HTTPS, sau đó cài đặt phần mềm cần thiết bằng lệnh bên dưới.
Thông lệ tốt, trước tiên hãy cập nhật danh sách các gói phần mềm có sẵn của bạn.
sudo apt update
Sau đó, tải xuống tất cả các phần phụ thuộc bắt buộc để cài đặt bằng cách sử dụng apt install .
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
Phần mềm Docker sử dụng GnuPG, còn được gọi là GPG, để bảo mật thông tin liên lạc khi tải xuống các gói phần mềm từ kho lưu trữ của nó. GPG là một tiêu chuẩn triển khai của PGP (Pretty Good Privacy) được sử dụng để mã hóa tin nhắn hoặc dữ liệu.
Để thêm khóa Docker GPG chính thức vào chuỗi khóa cục bộ của bạn, hãy sử dụng lệnh sau.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Docker có ba phiên bản phát hành phần mềm chính trong kho phần mềm của họ:phiên bản ổn định, phiên bản thử nghiệm và phiên bản phát hành hàng đêm. Hướng dẫn này sẽ nói về phiên bản phát hành ổn định của Docker.
Chạy lệnh sau để sử dụng phiên bản phát hành kho lưu trữ ổn định của Docker.
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Lưu ý :Lệnh nói trên giả định rằng bạn đang sử dụng kiến trúc AMD. Nếu bạn đang sử dụng kiến trúc ARM, bạn có thể thay thế từ Arch =amd64 trong lệnh ở trên với Arch =arm64, hoặc Arch =armhf nếu bạn đang sử dụng phao tay cứng.
Cài đặt Docker Engine
Bây giờ bạn đã thiết lập kho phần mềm Docker, bạn có thể tiến hành cài đặt Docker Engine, là cốt lõi của việc quản lý và chạy các vùng chứa Docker. Các thành phần quan trọng khác tạo nên Docker Engine bao gồm Docker Client, containerd, runc và Docker daemon.
Đảm bảo cập nhật các nguồn gói của bạn bằng lệnh bên dưới, vì gần đây bạn đã thêm kho lưu trữ Docker vào danh sách các nguồn phần mềm của mình.
sudo apt update
Để cài đặt Công cụ Docker, hãy chạy lệnh sau. Theo mặc định, lệnh sẽ cài đặt phiên bản ổn định mới nhất của Docker Engine.
sudo apt-get install docker-ce docker-ce-cli containerd.io
Nếu bạn muốn cài đặt một số phiên bản Docker cụ thể, trước tiên bạn có thể kiểm tra danh sách các phiên bản có sẵn bằng cách sử dụng lệnh bên dưới.
apt-cache madison docker-ce
Sau đó, bạn có thể cài đặt phiên bản Docker cụ thể bằng lệnh sau. Ví dụ:để cài đặt 5:20.10.6 ~ 3-0 ~ ubuntu-focus :
sudo apt-get install docker-ce=5:20.10.6~3-0~ubuntu-focal docker-ce-cli=5:20.10.6~3-0~ubuntu-focal containerd.io
Xác nhận cài đặt
Để kiểm tra xem Docker đã được cài đặt thành công hay chưa, bạn có thể chạy lệnh sau và lệnh này sẽ xuất ra số phiên bản của Docker Engine đã cài đặt.
docker -v
Trong Ubuntu Linux và hầu hết các bản phân phối dựa trên Debian, dịch vụ Docker sẽ tự động khởi động khi hệ thống của bạn khởi động.
Bạn có thể thử chạy hello-world Hình ảnh Docker để kiểm tra cài đặt. Vì hình ảnh không có sẵn cục bộ trên máy tính của bạn nên hệ thống sẽ tải xuống từ Docker Hub, một thư viện chứa các hình ảnh vùng chứa. Lần sau khi bạn chạy lại hình ảnh, nó sẽ sử dụng bản sao cục bộ có trên PC của bạn.
sudo docker run hello-world
Chạy Docker với tư cách là người dùng không phải root
Hiện tại, bạn chỉ có thể chạy vùng chứa Docker với tư cách là siêu người dùng, đó là lý do tại sao sudo được sử dụng trong lệnh trên. Daemon Docker liên kết với một ổ cắm Unix được sở hữu mặc định bởi người dùng root và người dùng không phải root chỉ có thể truy cập nó thông qua sudo.
Để có thể chạy vùng chứa Docker và các lệnh quan trọng khác mà không cần phải là người dùng cấp cao, trước tiên bạn cần tạo một nhóm người dùng có tên docker và sau đó thêm người dùng của bạn vào nhóm docker trên máy của bạn. groupadd lệnh chịu trách nhiệm quản lý các nhóm người dùng trong Linux.
sudo groupadd docker
sudo usermod -aG docker $USER
Sử dụng lệnh bên dưới để kích hoạt các thay đổi của nhóm.
newgrp docker
Lưu ý :Nhớ đăng xuất và đăng nhập lại để hệ thống ghi nhận tư cách thành viên nhóm mới tạo. Bạn có thể sử dụng lệnh sau để đăng xuất.
gnome-session-quit
Trong một số trường hợp, có thể cần phải khởi động lại máy của bạn nếu bạn vẫn không thể thực thi lệnh Docker với tư cách là người dùng không phải root.
Gỡ cài đặt Docker
Để xóa hoặc gỡ cài đặt Docker Engine khỏi Ubuntu Linux, chỉ cần chạy lệnh sau.
sudo apt remove docker docker-engine docker.io containerd runc
Mặc dù Docker Engine đã bị xóa, các tệp khác được liên kết với Docker như hình ảnh, vùng chứa, ổ đĩa hoặc tệp cấu hình tùy chỉnh sẽ không tự động bị xóa. Bạn có thể xóa các tệp này bằng tiện ích rm.
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Docker trong thực tế
Hướng dẫn này chỉ cho bạn cách cài đặt và cấu hình Docker trên Ubuntu Linux. Ngoài ra, nó chỉ cho bạn cách chạy một hình ảnh docker đơn giản được tìm nạp từ Docker Hub.
Docker là một công cụ rất linh hoạt và nó có nhiều trường hợp sử dụng trong kỹ thuật phần mềm. Nếu bạn là kỹ sư phần mềm hoặc làm việc trong DevOps, Docker sẽ đơn giản hóa cách bạn triển khai phần mềm trong các môi trường khác nhau và rất hữu ích cho việc thử nghiệm và tạo mẫu phần mềm.