Hướng dẫn cài đặt Docker và giới thiệu quá trình container hóa ứng dụng

15-08-2022


Hiện giờ Docker có đầy đủ bản cài đặt trên Windows, MacOS, Linux. Tùy thuộc bạn muốn chạy trên môi trường nào thì tải về bản cài đặt tương ứng để cài đặt. Dưới đây là hướng dẫn cài đặt của mình các bạn có thể dùng để tham khảo.

Trong bài viết trước đó mình đã giải thích Docker là gì? Container là gì? Sự khác biệt giữa Docker và VMs?

Trong bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Docker và đề cập đến quy trình contrain hóa ứng dụng. Để hiểu quy trình này, mình sẽ sử dụng ứng dụng đơn giản nhất để container hóa ứng dụng.

Cài Docker trên macOS

Tải bộ cài tại Docker Desktop for Mac, cài đặt đơn giản như các công cụ thông thường.

Install from the command line

Sau khi tải xuống docker.dmg, hãy chạy các lệnh sau trong terminal để cài đặt Docker Desktop trong thư mục của ứng dụng:

$ sudo hdiutil attach Docker.dmg

$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install

$ sudo hdiutil detach /Volumes/Docker

Vì các MacOS thường thực hiện kiểm tra bảo mật ngay lần đầu tiên sử dụng ứng dụng, lệnh cài đặt có thể mất vài phút để chạy.

Cài Docker trên Ubuntu

Để cài đặt Docker Desktop thành công, bạn phải:

  • Kiểm tra yêu cầu hệ thống.
  • Có phiên bản 64 bit của Ubuntu Jammy Jellyfish 22.04 (LTS) hoặc Ubuntu Impish Indri 21.10. Docker Desktop được hỗ trợ trên kiến ​​trúc x86_64 (hoặc AMD64).
  • Gỡ cài đặt bản xem trước hoặc phiên bản beta của Docker Desktop cho Linux. Chạy:

$ sudo apt remove docker-desktop

Để dọn dẹp hoàn chỉnh, hãy xóa các tệp cấu hình và dữ liệu tại $home/.docker/Desktop, SymLink tại /usr/local/bin/com.docker.cli và xóa các tệp dịch vụ Systemd còn lại.

$ rm -r $HOME/.docker/desktop

$ sudo rm /usr/local/bin/com.docker.cli

$ sudo apt purge docker-desktop

Các bước cài đặt Docker Desktop trên Ubuntu :

  1. Cài đặt Docker’s package repository.
  2. Tải phiên bản mới nhất DEB package.
  3. Cài đặt gói với APT như sau:

    $ sudo apt-get update

    $ sudo apt-get install ./docker-desktop-<version>-<arch>.deb

Chú ý:  Khi kết thúc quá trình cài đặt, APT hiển thị lỗi do cài đặt gói đã tải xuống. Bạn có thể bỏ qua thông báo lỗi này :

N: Download is performed unsandboxed as root, as file '/home/user/Downloads/docker-desktop.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied).

Sau khi bạn đã cài đặt thành công Docker Desktop, bạn có thể kiểm tra các phiên bản bằng cách chạy một trong các lệnh sau:

Cài Docker trên Windows 10

Đảm bảo hệ thống là Windows 10 .

Tải bộ cài tại Docker Desktop for Windows, tiến hành cài đặt. Đối với Windows phải kích hoạt chế độ Hyper-V virtualization (Ở chế độ này bạn không dùng được VirtualBox nữa).

Nếu chưa kích hoạt Hyper-V thì kích hoạt theo hướng dẫn Enable Hyper-V.

Chạy lệnh sau trên CMD để kích hoạt:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Kích hoạt thông qua thiết lập Windows :

  1. Nhấn phải chuột vào biểu tượng cửa sổ, chọn Apps and  Features.
  2. Chọn Programs and Features.
  3. Chọn Turn Windows Features on or off.
  4. Đánh dấu vào Virtual Machine Plaform như hình dưới.

Sau khi docker được cài đặt và đã khởi động, mình muốn chạy lệnh kiểm tra phiên bản docker từ commandline của mình để đảm bảo rằng mọi thứ đã được cài đặt thành công. Mình sẽ mở cửa sổ CMD và chạy lệnh "docker version"

Bây giờ Docker đã được cài đặt thành công . Chúng đã sẵn sàng để tìm hiểu về quá trình container hóa ứng dụng.

Quy trình container hóa ứng dụng

Bước 1: Cài đặt Docker trên hệ điều hành của bạn.

Bước 2: Xây dựng một docker image.

Docker image là thứ sẽ được sử dụng để tạo container chứa ứng dụng của bạn. Về cơ bản nó, là môt template được sử dụng để tạo và chạy một container. Để tạo một image, bạn cần một tệp Dockerfile sẽ bao gồm các hướng dẫn về cách tạo docker image.

Bước 3: Chạy docker container từ docker image.

Nếu bạn không chắc chắn về sự khác biệt giữa image container, một phép tương tự hữu ích là classes và runtime objects trong lập trình hướng đối tượng (OOP). Bạn có thể coi image như một class và container là runtime objects mà bạn khởi tạo từ class của mình.  Bạn tạo một Docker image và khởi tạo nhiêu container tùy ý. Vì vậy một container là instanceof  đang chạy của image.

 

Cảm ơn các đã xem bài viết của mình, bài viết tiếp theo mình sẽ viết ví dụ container hóa ứng dụng.