Docker là một nền tảng mã nguồn mở giúp đơn giản hóa quá trình phát triển, triển khai và chạy các ứng dụng bằng cách sử dụng các container. Container cho phép đóng gói ứng dụng và tất cả các phụ thuộc của nó vào một đơn vị tiêu chuẩn, giúp ứng dụng có thể chạy một cách nhất quán trên nhiều môi trường khác nhau. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt Docker trên các hệ điều hành phổ biến như Windows, Ubuntu và CentOS.
Cài Đặt Docker Trên Windows
Yêu Cầu Hệ Thống
- Hệ điều hành: Windows 10 64-bit (Pro, Enterprise, hoặc Education) hoặc Windows 11.
- Bật tính năng Hyper-V và Containers.
- Tối thiểu 4GB RAM.
- Bộ xử lý 64-bit.
Các Bước Cài Đặt
-
Tải Docker Desktop
Truy cập trang web chính thức của Docker và tải Docker Desktop cho Windows.
plaintexthttps://www.docker.com/get-started
-
Chạy File Cài Đặt
Sau khi tải về, chạy file
Docker Desktop Installer.exe
. Trong quá trình cài đặt, nếu Windows chưa bật Hyper-V, sẽ có một checkbox hỏi xem có muốn bật Hyper-V luôn không, hãy chọn checkbox này để bật Hyper-V. -
Khởi Động Lại Máy
Sau khi cài đặt hoàn tất, khởi động lại máy tính để hoàn tất quá trình cài đặt.
-
Kiểm Tra Cài Đặt
Sau khi khởi động lại, mở Docker Desktop và kiểm tra xem Docker đã được cài đặt thành công chưa bằng cách chạy lệnh sau trong Command Prompt hoặc PowerShell:
bashdocker --version
Nếu Docker được cài đặt thành công, bạn sẽ thấy phiên bản Docker hiện tại.
-
Chạy Container Đầu Tiên
Để kiểm tra Docker hoạt động bình thường, chạy lệnh sau để kéo và chạy container
hello-world
:bashdocker run hello-world
Nếu Docker hoạt động bình thường, bạn sẽ thấy thông báo "Hello from Docker!".
Cài Đặt Docker Trên Ubuntu
Yêu Cầu Hệ Thống
- Hệ điều hành: Ubuntu 18.04 hoặc mới hơn.
- Quyền truy cập root hoặc quyền sudo.
Các Bước Cài Đặt
-
Cập Nhật Hệ Thống
Trước khi cài đặt Docker, hãy cập nhật hệ thống để đảm bảo tất cả các gói phụ thuộc đều được cập nhật:
bashsudo apt-get update sudo apt-get upgrade
-
Cài Đặt Các Gói Phụ Thuộc
Cài đặt các gói phụ thuộc cần thiết để sử dụng HTTPS:
bashsudo apt-get install apt-transport-https ca-certificates curl software-properties-common
-
Thêm Key GPG Của Docker
Thêm key GPG của Docker để xác thực các gói Docker:
bashcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
Thêm Repository Docker
Thêm repository Docker vào danh sách nguồn của APT:
bashsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
Cài Đặt Docker
Cập nhật danh sách gói và cài đặt Docker:
bashsudo apt-get update sudo apt-get install docker-ce
-
Kiểm Tra Trạng Thái Docker
Kiểm tra trạng thái của Docker để đảm bảo rằng Docker đã được cài đặt và đang chạy:
bashsudo systemctl status docker
-
Chạy Container Đầu Tiên
Để kiểm tra Docker hoạt động bình thường, chạy lệnh sau để kéo và chạy container
hello-world
:bashsudo docker run hello-world
Nếu Docker hoạt động bình thường, bạn sẽ thấy thông báo "Hello from Docker!".
Cài Đặt Docker Trên CentOS
Yêu Cầu Hệ Thống
- Hệ điều hành: CentOS 7 hoặc mới hơn.
- Quyền truy cập root hoặc quyền sudo.
Các Bước Cài Đặt
-
Cập Nhật Hệ Thống
Trước khi cài đặt Docker, hãy cập nhật hệ thống để đảm bảo tất cả các gói phụ thuộc đều được cập nhật:
bashsudo yum check-update
-
Cài Đặt Docker
Cài đặt Docker từ kho lưu trữ chính thức của Docker:
bashsudo yum install docker-ce
-
Khởi Động Docker
Khởi động dịch vụ Docker và cấu hình để Docker tự động khởi động cùng hệ thống:
bashsudo systemctl start docker sudo systemctl enable docker
-
Kiểm Tra Trạng Thái Docker
Kiểm tra trạng thái của Docker để đảm bảo rằng Docker đã được cài đặt và đang chạy:
bashsudo systemctl status docker
-
Chạy Container Đầu Tiên
Để kiểm tra Docker hoạt động bình thường, chạy lệnh sau để kéo và chạy container
hello-world
:bashsudo docker run hello-world
Nếu Docker hoạt động bình thường, bạn sẽ thấy thông báo "Hello from Docker!".
Ví Dụ: Tạo và Chạy Ứng Dụng Web Đơn Giản Với Docker
Trong ví dụ này, chúng ta sẽ tạo và chạy một ứng dụng web đơn giản sử dụng Docker.
-
Tạo Dockerfile
Tạo một file có tên là
Dockerfile
với nội dung sau:Dockerfile# Sử dụng image chính thức của Node.js làm base image FROM node:14 # Tạo thư mục làm việc trong container WORKDIR /app # Sao chép package.json và package-lock.json vào thư mục làm việc COPY package*.json ./ # Cài đặt các phụ thuộc của ứng dụng RUN npm install # Sao chép mã nguồn ứng dụng vào thư mục làm việc COPY . . # Mở cổng 8080 để truy cập ứng dụng EXPOSE 8080 # Chạy ứng dụng khi container khởi động CMD ["node", "app.js"]
-
Tạo file package.json
Tạo một file có tên là
package.json
với nội dung sau:json{ "name": "docker-example", "version": "1.0.0", "description": "A simple web application", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.17.1" } }
-
Tạo file app.js
Tạo một file có tên là
app.js
với nội dung sau:javascriptconst express = require('express'); const app = express(); const port = 8080; app.get('/', (req, res) => { res.send('Hello, Docker!'); }); app.listen(port, () => { console.log(`App running at http://localhost:${port}`); });
-
Xây Dựng Docker Image
Sử dụng lệnh
docker build
để xây dựng Docker image từ Dockerfile:bashdocker build -t docker-example .
-
Chạy Docker Container
Sử dụng lệnh
docker run
để tạo và chạy một container từ Docker image vừa xây dựng:bashdocker run -p 8080:8080 docker-example
-
Truy Cập Ứng Dụng
Mở trình duyệt web và truy cập
http://localhost:8080
. Bạn sẽ thấy thông báo "Hello, Docker!".
Kết Luận
Docker là một công cụ mạnh mẽ giúp đơn giản hóa quá trình phát triển, kiểm thử và triển khai ứng dụng. Bằng cách sử dụng Docker, các nhà phát triển có thể đảm bảo rằng ứng dụng của họ sẽ hoạt động nhất quán trên nhiều môi trường khác nhau, từ máy phát triển đến máy chủ sản xuất. Docker cũng mang lại nhiều lợi ích về tính di động, hiệu quả tài nguyên, và tính linh hoạt, giúp tối ưu hóa quá trình phát triển và triển khai ứng dụng.
Việc cài đặt Docker trên các hệ điều hành phổ biến như Windows, Ubuntu và CentOS khá đơn giản và có thể thực hiện thông qua một vài bước cơ bản. Sau khi cài đặt, bạn có thể bắt đầu sử dụng Docker để tạo và quản lý các container, giúp nâng cao hiệu quả và tính nhất quán trong quá trình phát triển và triển khai ứng dụng.