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. Docker container là một đơn vị phần mềm độc lập và có thể thực thi, chứa tất cả các thành phần cần thiết để chạy một ứng dụng. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về các câu lệnh Docker container, cách sử dụng chúng, và cung cấp các ví dụ cụ thể để minh họa.
Tổng Quan về Docker Container
Docker container là một môi trường cách ly, nơi các ứng dụng có thể chạy một cách độc lập với các ứng dụng khác. Container giúp đảm bảo rằng ứng dụng 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.
Các Thành Phần Chính của Docker Container
- Image: Docker container được tạo ra từ Docker image. Docker image là một mẫu chỉ đọc chứa tất cả các thành phần cần thiết để chạy một ứng dụng.
- Container Runtime: Docker container chạy trên một container runtime, chẳng hạn như Docker Engine.
- Filesystem: Mỗi container có một hệ thống file riêng biệt, được tạo ra từ Docker image.
- Networking: Docker container có thể giao tiếp với các container khác và với mạng bên ngoài thông qua các mạng Docker.
- Isolation: Docker container cung cấp một môi trường cách ly cho ứng dụng, giúp ngăn chặn xung đột giữa các ứng dụng.
Các Câu Lệnh Docker Container Cơ Bản
Tạo và Chạy Docker Container
-
docker run
Lệnh
docker runtạo và chạy một container từ một Docker image. Đây là lệnh quan trọng nhất trong Docker vì nó cho phép bạn kiểm soát hành vi của container bằng cách chỉ định tên container, image và nhiều tùy chọn khác.bashdocker run [OPTIONS] IMAGE [COMMAND] [ARG...]Ví dụ:
bashdocker run -d --name my-container nginxLệnh trên sẽ tạo và chạy một container từ image
nginxvà đặt tên cho container làmy-container. -
docker create
Lệnh
docker createtạo một container mới từ một Docker image nhưng không khởi động nó. Lệnh này hữu ích khi bạn muốn thiết lập cấu hình container trước khi khởi động.bashdocker create [OPTIONS] IMAGE [COMMAND] [ARG...]Ví dụ:
bashdocker create --name my-container nginxLệnh trên sẽ tạo một container từ image
nginxvà đặt tên cho container làmy-container. -
docker start
Lệnh
docker startkhởi động một container đã được tạo trước đó.bashdocker start [OPTIONS] CONTAINER [CONTAINER...]Ví dụ:
bashdocker start my-containerLệnh trên sẽ khởi động container có tên
my-container.
Quản Lý Docker Container
-
docker stop
Lệnh
docker stopdừng một hoặc nhiều container đang chạy.bashdocker stop [OPTIONS] CONTAINER [CONTAINER...]Ví dụ:
bashdocker stop my-containerLệnh trên sẽ dừng container có tên
my-container. -
docker restart
Lệnh
docker restartkhởi động lại một hoặc nhiều container đang chạy.bashdocker restart [OPTIONS] CONTAINER [CONTAINER...]Ví dụ:
bashdocker restart my-containerLệnh trên sẽ khởi động lại container có tên
my-container. -
docker pause
Lệnh
docker pausetạm dừng các tiến trình bên trong một container đang chạy.bashdocker pause CONTAINER [CONTAINER...]Ví dụ:
bashdocker pause my-containerLệnh trên sẽ tạm dừng container có tên
my-container. -
docker unpause
Lệnh
docker unpausetiếp tục các tiến trình bên trong một container đã bị tạm dừng.bashdocker unpause CONTAINER [CONTAINER...]Ví dụ:
bashdocker unpause my-containerLệnh trên sẽ tiếp tục container có tên
my-container. -
docker rm
Lệnh
docker rmxóa một hoặc nhiều container đã dừng.bashdocker rm [OPTIONS] CONTAINER [CONTAINER...]Ví dụ:
bashdocker rm my-containerLệnh trên sẽ xóa container có tên
my-container.
Kiểm Tra Trạng Thái Docker Container
-
docker ps
Lệnh
docker psliệt kê tất cả các container đang chạy.bashdocker ps [OPTIONS]Ví dụ:
bashdocker psLệnh trên sẽ liệt kê tất cả các container đang chạy.
-
docker ps -a
Lệnh
docker ps -aliệt kê tất cả các container, bao gồm cả các container đã dừng.bashdocker ps -aVí dụ:
bashdocker ps -aLệnh trên sẽ liệt kê tất cả các container, bao gồm cả các container đã dừng.
-
docker stats
Lệnh
docker statshiển thị thống kê sử dụng tài nguyên theo thời gian thực cho một hoặc nhiều container.bashdocker stats [OPTIONS] [CONTAINER...]Ví dụ:
bashdocker stats my-containerLệnh trên sẽ hiển thị thống kê sử dụng tài nguyên cho container có tên
my-container. -
docker logs
Lệnh
docker logshiển thị các log được tạo ra bởi container.bashdocker logs [OPTIONS] CONTAINERVí dụ:
bashdocker logs my-containerLệnh trên sẽ hiển thị các log của container có tên
my-container. -
docker inspect
Lệnh
docker inspecttrả về thông tin chi tiết về một hoặc nhiều container.bashdocker inspect [OPTIONS] NAME|ID [NAME|ID...]Ví dụ:
bashdocker inspect my-containerLệnh trên sẽ trả về thông tin chi tiết về container có tên
my-container.
Ví Dụ: Tạo và Quản Lý Docker Container
Trong ví dụ này, chúng ta sẽ tạo và quản lý một ứng dụng web đơn giản sử dụng Docker containers.
-
Tạo Dockerfile
Tạo một file có tên là
Dockerfilevớ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.jsonvớ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.jsvớ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 -d -p 8080:8080 --name my-docker-app docker-example -
Kiểm Tra Trạng Thái Container
Sử dụng lệnh
docker psđể kiểm tra trạng thái của container:bashdocker psBạn sẽ thấy container
my-docker-appđang chạy. -
Xem Log của Container
Sử dụng lệnh
docker logsđể xem log của container:bashdocker logs my-docker-app -
Dừng Container
Sử dụng lệnh
docker stopđể dừng container:bashdocker stop my-docker-app -
Xóa Container
Sử dụng lệnh
docker rmđể xóa container:bashdocker rm my-docker-app
Kết Luận
Docker containers 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 các câu lệnh Docker container, các nhà phát triển có thể dễ dàng tạo, quản lý và kiểm tra trạng thái của các container, đả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. Docker containers 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 sử dụng các câu lệnh Docker container 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 tạo Docker containers, bạn có thể sử dụng chúng để tạo và quản lý các ứng dụng, 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.