Khóa học docker

Các Câu Lệnh với Docker Container

0 phút đọc

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

  1. 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.
  2. Container Runtime: Docker container chạy trên một container runtime, chẳng hạn như Docker Engine.
  3. Filesystem: Mỗi container có một hệ thống file riêng biệt, được tạo ra từ Docker image.
  4. 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.
  5. 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

  1. 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.

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    Ví dụ:

    docker 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.

  2. 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.

    docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

    Ví dụ:

    docker 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.

  3. docker start

    Lệnh docker start khởi động một container đã được tạo trước đó.

    docker start [OPTIONS] CONTAINER [CONTAINER...]

    Ví dụ:

    docker start my-container

    Lệnh trên sẽ khởi động container có tên my-container.

Quản Lý Docker Container

  1. docker stop

    Lệnh docker stop dừng một hoặc nhiều container đang chạy.

    docker stop [OPTIONS] CONTAINER [CONTAINER...]

    Ví dụ:

    docker stop my-container

    Lệnh trên sẽ dừng container có tên my-container.

  2. docker restart

    Lệnh docker restart khởi động lại một hoặc nhiều container đang chạy.

    docker restart [OPTIONS] CONTAINER [CONTAINER...]

    Ví dụ:

    docker restart my-container

    Lệnh trên sẽ khởi động lại container có tên my-container.

  3. 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.

    docker pause CONTAINER [CONTAINER...]

    Ví dụ:

    docker pause my-container

    Lệnh trên sẽ tạm dừng container có tên my-container.

  4. 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.

    docker unpause CONTAINER [CONTAINER...]

    Ví dụ:

    docker unpause my-container

    Lệnh trên sẽ tiếp tục container có tên my-container.

  5. docker rm

    Lệnh docker rm xóa một hoặc nhiều container đã dừng.

    docker rm [OPTIONS] CONTAINER [CONTAINER...]

    Ví dụ:

    docker 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

  1. docker ps

    Lệnh docker ps liệt kê tất cả các container đang chạy.

    docker ps [OPTIONS]

    Ví dụ:

    docker ps

    Lệnh trên sẽ liệt kê tất cả các container đang chạy.

  2. 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.

    docker ps -a

    Ví dụ:

    docker 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.

  3. 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.

    docker stats [OPTIONS] [CONTAINER...]

    Ví dụ:

    docker 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.

  4. docker logs

    Lệnh docker logs hiển thị các log được tạo ra bởi container.

    docker logs [OPTIONS] CONTAINER

    Ví dụ:

    docker logs my-container

    Lệnh trên sẽ hiển thị các log của container có tên my-container.

  5. docker inspect

    Lệnh docker inspect trả về thông tin chi tiết về một hoặc nhiều container.

    docker inspect [OPTIONS] NAME|ID [NAME|ID...]

    Ví dụ:

    docker 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.

  1. Tạo Dockerfile

    Tạo một file có tên là Dockerfile với nội dung sau:

    # 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"]
  2. Tạo file package.json

    Tạo một file có tên là package.json với nội dung sau:

    {
      "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"
      }
    }
  3. Tạo file app.js

    Tạo một file có tên là app.js với nội dung sau:

    const 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}`);
    });
  4. Xây Dựng Docker Image

    Sử dụng lệnh docker build để xây dựng Docker image từ Dockerfile:

    docker build -t docker-example .
  5. 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:

    docker run -d -p 8080:8080 --name my-docker-app docker-example
  6. 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:

    docker ps

    Bạn sẽ thấy container my-docker-app đang chạy.

  7. Xem Log của Container

    Sử dụng lệnh docker logs để xem log của container:

    docker logs my-docker-app
  8. Dừng Container

    Sử dụng lệnh docker stop để dừng container:

    docker stop my-docker-app
  9. Xóa Container

    Sử dụng lệnh docker rm để xóa container:

    docker 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.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Cách hiển thị trạng thái của tất cả docker container bằng dòng lệnh nào?

entry

Giải thích về container trong Docker?

entry

Bạn có thể giải thích sự khác nhau giữa cấu trúc tập tin và cấu trúc lưu trữ?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào