Rate this post

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. Để làm việc hiệu quả với Docker, việc nắm vững các câu lệnh Docker là rất quan trọng. Trong bài viết này, chúng ta sẽ tổng hợp các câu lệnh Docker quan trọng, bao gồm các lệnh quản lý container, image, network, volume, và nhiều hơn nữa. Chúng ta cũng sẽ cung cấp các ví dụ cụ thể để minh họa cách sử dụng các câu lệnh này.

Tổng Quan Về Docker CLI

Docker CLI (Command Line Interface) là công cụ dòng lệnh cho phép người dùng tương tác với Docker daemon. Docker CLI cung cấp các lệnh để quản lý container, image, network, volume, và các thành phần khác của Docker.

https://youtu.be/sC6siNnWyNU?si=r8ZDeuIKeg1GPCej

Các Lệnh Cơ Bản

  1. docker version: Hiển thị thông tin chi tiết về phiên bản Docker CLI và daemon.

    bash
    Copy 

    docker version
  2. docker info: Hiển thị thông tin hệ thống Docker, bao gồm các plugin đang hoạt động và số lượng container và image trên hệ thống.

    bash
    Copy 

    docker info
  3. docker help: Hiển thị danh sách các lệnh hỗ trợ.

    bash
    Copy 

    docker help
  4. docker –help: Hiển thị thông tin trợ giúp về một lệnh cụ thể.

    bash
    Copy 

    docker run --help

Quản Lý Container

Tạo và Chạy Container

  1. docker run: Tạo và chạy một container từ một Docker image.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker run -d -p 8080:80 --name my-nginx nginx

    Trong ví dụ trên:

    • -d: Chạy container ở chế độ nền (detached mode).
    • -p 8080:80: Ánh xạ cổng 8080 trên host với cổng 80 trên container.
    • --name my-nginx: Đặt tên cho container là my-nginx.
    • nginx: Image được sử dụng để tạo container.
  2. docker create: Tạo một container mới nhưng không khởi động nó.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker create --name my-container ubuntu

Quản Lý Container

  1. docker start: Khởi động một hoặc nhiều container đã dừng.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker start my-container
  2. docker stop: Dừng một hoặc nhiều container đang chạy.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker stop my-container
  3. docker restart: Khởi động lại một hoặc nhiều container đang chạy.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker restart my-container
  4. docker rm: Xóa một hoặc nhiều container đã dừng.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker rm my-container
  5. docker ps: Liệt kê các container đang chạy.

    bash
    Copy 

    docker ps

    Liệt kê tất cả các container, bao gồm cả các container đã dừng:

    bash
    Copy 

    docker ps -a
  6. docker logs: Lấy log của một container.

    bash
    Copy 

    docker logs [OPTIONS] CONTAINER

    Ví dụ:

    bash
    Copy 

    docker logs my-container
  7. docker exec: Thực thi một lệnh trong một container đang chạy.

    bash
    Copy 

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

    Ví dụ:

    bash
    Copy 

    docker exec -it my-container /bin/bash
  8. docker inspect: Hiển thị thông tin chi tiết về một hoặc nhiều container.

    bash
    Copy 

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

    Ví dụ:

    bash
    Copy 

    docker inspect my-container

Quản Lý Image

Tạo và Quản Lý Docker Image

  1. docker build: Xây dựng một Docker image từ một Dockerfile.

    bash
    Copy 

    docker build [OPTIONS] PATH | URL | -

    Ví dụ:

    bash
    Copy 

    docker build -t my-image .

    Trong ví dụ trên:

    • -t my-image: Đặt tên cho image là my-image.
    • .: Đường dẫn đến Dockerfile.
  2. docker images: Liệt kê các Docker image trên hệ thống.

    bash
    Copy 

    docker images
  3. docker rmi: Xóa một hoặc nhiều Docker image.

    bash
    Copy 

    docker rmi [OPTIONS] IMAGE [IMAGE...]

    Ví dụ:

    bash
    Copy 

    docker rmi my-image
  4. docker tag: Gán một tag cho một Docker image.

    bash
    Copy 

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

    Ví dụ:

    bash
    Copy 

    docker tag my-image my-repo/my-image:latest
  5. docker push: Đẩy một Docker image lên registry.

    bash
    Copy 

    docker push [OPTIONS] NAME[:TAG]

    Ví dụ:

    bash
    Copy 

    docker push my-repo/my-image:latest
  6. docker pull: Kéo một Docker image từ registry.

    bash
    Copy 

    docker pull [OPTIONS] NAME[:TAG]

    Ví dụ:

    bash
    Copy 

    docker pull nginx:latest

Quản Lý Network

Tạo và Quản Lý Docker Network

  1. docker network create: Tạo một Docker network mới.

    bash
    Copy 

    docker network create [OPTIONS] NETWORK

    Ví dụ:

    bash
    Copy 

    docker network create my-network
  2. docker network ls: Liệt kê các Docker network trên hệ thống.

    bash
    Copy 

    docker network ls
  3. docker network inspect: Hiển thị thông tin chi tiết về một hoặc nhiều Docker network.

    bash
    Copy 

    docker network inspect [OPTIONS] NETWORK [NETWORK...]

    Ví dụ:

    bash
    Copy 

    docker network inspect my-network
  4. docker network connect: Kết nối một container với một Docker network.

    bash
    Copy 

    docker network connect [OPTIONS] NETWORK CONTAINER

    Ví dụ:

    bash
    Copy 

    docker network connect my-network my-container
  5. docker network disconnect: Ngắt kết nối một container khỏi một Docker network.

    bash
    Copy 

    docker network disconnect [OPTIONS] NETWORK CONTAINER

    Ví dụ:

    bash
    Copy 

    docker network disconnect my-network my-container
  6. docker network rm: Xóa một hoặc nhiều Docker network.

    bash
    Copy 

    docker network rm [OPTIONS] NETWORK [NETWORK...]

    Ví dụ:

    bash
    Copy 

    docker network rm my-network

Quản Lý Volume

Tạo và Quản Lý Docker Volume

  1. docker volume create: Tạo một Docker volume mới.

    bash
    Copy 

    docker volume create [OPTIONS] [VOLUME]

    Ví dụ:

    bash
    Copy 

    docker volume create my-volume
  2. docker volume ls: Liệt kê các Docker volume trên hệ thống.

    bash
    Copy 

    docker volume ls
  3. docker volume inspect: Hiển thị thông tin chi tiết về một hoặc nhiều Docker volume.

    bash
    Copy 

    docker volume inspect [OPTIONS] VOLUME [VOLUME...]

    Ví dụ:

    bash
    Copy 

    docker volume inspect my-volume
  4. docker volume rm: Xóa một hoặc nhiều Docker volume.

    bash
    Copy 

    docker volume rm [OPTIONS] VOLUME [VOLUME...]

    Ví dụ:

    bash
    Copy 

    docker volume rm my-volume
  5. docker volume prune: Xóa tất cả các Docker volume không sử dụng.

    bash
    Copy 

    docker volume prune [OPTIONS]

    Ví dụ:

    bash
    Copy 

    docker volume prune

Ví Dụ: Tạo và Sử Dụng Docker Networking

Trong ví dụ này, chúng ta sẽ tạo và sử dụng Docker networking để kết nối hai container và cho phép chúng giao tiếp với nhau.

  1. Tạo Mạng Tùy Chỉnh

    Tạo một mạng cầu nối tùy chỉnh có tên là my-bridge-net:

    bash
    Copy 

    docker network create -d bridge my-bridge-net
  2. Tạo Dockerfile Cho Ứng Dụng Web

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

    Dockerfile
    Copy 

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

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

    json
    Copy 

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

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

    javascript
    Copy 

    const express = require("express");
    const app = express();
    const port = 8080;
    
    app.get("/", (req, res) => {
      res.send("Hello, Docker Networking!");
    });
    
    app.listen(port, () => {
      console.log(`App running at http://localhost:${port}`);
    });
  5. Xây Dựng Docker Image Cho Ứng Dụng Web

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

    bash
    Copy 

    docker build -t docker-example .
  6. Tạo và Kết Nối Container Ứng Dụng Web

    Sử dụng lệnh docker run để tạo và kết nối container ứng dụng web với mạng my-bridge-net:

    bash
    Copy 

    docker run -d --network=my-bridge-net --name=web-container docker-example
  7. Tạo Container Redis

    Sử dụng lệnh docker run để tạo container Redis và kết nối nó với mạng my-bridge-net:

    bash
    Copy 

    docker run -d --network=my-bridge-net --name=redis-container redis
  8. Kiểm Tra Kết Nối Giữa Các Container

    Sử dụng lệnh docker exec để truy cập vào container ứng dụng web và kiểm tra kết nối với container Redis:

    bash
    Copy 

    docker exec -it web-container sh

    Bên trong container, sử dụng lệnh ping để kiểm tra kết nối với container Redis:

    sh
    Copy 

    ping redis-container

    Nếu kết nối thành công, bạn sẽ thấy các gói tin ping được gửi và nhận.

Kết Luận

Việc nắm vững các câu lệnh Docker là rất quan trọng để làm việc hiệu quả với Docker. Bằng cách sử dụng các câu lệnh Docker, bạn có thể quản lý container, image, network, volume, và các thành phần khác của Docker một cách dễ dàng và hiệu quả. Việc hiểu rõ cách sử dụng các câu lệnh này sẽ giúp bạn tận dụng tối đa các lợi ích mà Docker mang lại. Bằng cách tuân theo các thực hành tốt nhất, bạn có thể đảm bảo rằng ứng dụng của mình sẽ hoạt động nhất quán và an toàn trên nhiều môi trường khác nhau.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *