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 run
tạ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 nginx
Lệnh trên sẽ tạo và chạy một container từ image
nginx
và đặt tên cho container làmy-container
. -
docker create
Lệnh
docker create
tạ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 nginx
Lệnh trên sẽ tạo một container từ image
nginx
và đặt tên cho container làmy-container
. -
docker start
Lệnh
docker start
khởi động một container đã được tạo trước đó.bashdocker start [OPTIONS] CONTAINER [CONTAINER...]
Ví dụ:
bashdocker start my-container
Lệnh trên sẽ khởi động container có tên
my-container
.
Quản Lý Docker Container
-
docker stop
Lệnh
docker stop
dừng một hoặc nhiều container đang chạy.bashdocker stop [OPTIONS] CONTAINER [CONTAINER...]
Ví dụ:
bashdocker stop my-container
Lệnh trên sẽ dừng container có tên
my-container
. -
docker restart
Lệnh
docker restart
khởi động lại một hoặc nhiều container đang chạy.bashdocker restart [OPTIONS] CONTAINER [CONTAINER...]
Ví dụ:
bashdocker restart my-container
Lệnh trên sẽ khởi động lại container có tên
my-container
. -
docker pause
Lệnh
docker pause
tạ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-container
Lệnh trên sẽ tạm dừng container có tên
my-container
. -
docker unpause
Lệnh
docker unpause
tiế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-container
Lệnh trên sẽ tiếp tục container có tên
my-container
. -
docker rm
Lệnh
docker rm
xóa một hoặc nhiều container đã dừng.bashdocker rm [OPTIONS] CONTAINER [CONTAINER...]
Ví dụ:
bashdocker rm my-container
Lệ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 ps
liệt kê tất cả các container đang chạy.bashdocker ps [OPTIONS]
Ví dụ:
bashdocker ps
Lệnh trên sẽ liệt kê tất cả các container đang chạy.
-
docker ps -a
Lệnh
docker ps -a
liệt kê tất cả các container, bao gồm cả các container đã dừng.bashdocker ps -a
Ví dụ:
bashdocker ps -a
Lệ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 stats
hiể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-container
Lệ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 logs
hiển thị các log được tạo ra bởi container.bashdocker logs [OPTIONS] CONTAINER
Ví dụ:
bashdocker logs my-container
Lệnh trên sẽ hiển thị các log của container có tên
my-container
. -
docker inspect
Lệnh
docker inspect
trả 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-container
Lệ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à
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 -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 ps
Bạ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.