Bắt Đầu Với Linux: Các Kỹ Năng Cốt Lõi Mà Mọi Người Dùng Docker Cần Biết

Chào mừng bạn quay trở lại với loạt bài Roadmap Docker! Trong những bài viết trước, chúng ta đã cùng nhau tìm hiểu container là gì, sự khác biệt giữa container, máy ảo và bare metal, cũng như hiểu rõ hơn về Docker và tiêu chuẩn OCI.

Docker đã cách mạng hóa cách chúng ta xây dựng, đóng gói và chạy ứng dụng. Nó mang lại sự nhất quán, khả năng di chuyển và hiệu quả đáng kinh ngạc. Tuy nhiên, đằng sau sự tiện lợi của Docker là một nền tảng vững chắc: Linux.

Dù bạn đang phát triển ứng dụng trên Windows hay macOS và dùng Docker Desktop, các container mà bạn chạy phần lớn dựa trên nhân Linux. Và khi triển khai Docker lên môi trường sản phẩm hoặc môi trường Cloud, gần như chắc chắn bạn sẽ làm việc trên các máy chủ chạy Linux. Vì vậy, việc nắm vững các kỹ năng Linux cơ bản không chỉ giúp bạn sử dụng Docker hiệu quả hơn mà còn là nền tảng vững chắc cho sự nghiệp DevOps của bạn.

Bài viết này không nhằm mục đích biến bạn thành một chuyên gia Linux ngay lập tức, mà sẽ tập trung vào những kỹ năng cốt lõi nhất, thiết thực nhất mà mọi người dùng Docker nên trang bị. Hãy cùng bắt đầu khám phá!

Tại Sao Linux Lại Quan Trọng Đến Thế Đối Với Người Dùng Docker?

Như đã đề cập, Docker được xây dựng dựa trên các tính năng cấp thấp của nhân Linux, đặc biệt là Namespaces và Cgroups. Đây là những công nghệ cho phép cô lập tài nguyên và quy trình, tạo nên “biên giới” giữa container và hệ thống host, cũng như giữa các container với nhau.

  • Môi Trường Triển Khai Phổ Biến: Đại đa số các máy chủ Cloud, server vật lý, hoặc các nền tảng Orchestration (như Kubernetes) đều chạy trên Linux. Việc quen thuộc với môi trường này là điều bắt buộc.
  • Hiểu Rõ Hơn Về Cách Docker Hoạt Động: Khi bạn gặp sự cố với Docker (ví dụ: container không khởi động, lỗi quyền truy cập volume, vấn đề mạng…), việc hiểu cách Docker tương tác với hệ thống tệp, tiến trình, mạng và quyền của Linux sẽ giúp bạn chẩn đoán và giải quyết vấn đề nhanh chóng hơn.
  • Quản Lý Tài Nguyên: Kiểm tra mức sử dụng CPU, RAM, dung lượng đĩa của các container trên host Linux.
  • Cài Đặt và Cấu Hình Docker: Cài đặt Docker Engine, cấu hình daemon Docker, xử lý các dependency… tất cả đều thực hiện trên Linux.
  • Xây Dựng Dockerfile: Các lệnh trong Dockerfile (như RUN, CMD) thường thực thi các lệnh shell của Linux.

Nói tóm lại, nếu Docker là “con tàu” giúp bạn vận chuyển ứng dụng, thì Linux chính là “biển cả” mà con tàu đó di chuyển. Bạn không thể đi xa nếu không hiểu rõ về môi trường xung quanh mình.

Kỹ Năng 1: Điều Hướng Hệ Thống Tệp và Các Lệnh Cơ Bản Trên Terminal

Terminal (hoặc command line interface – CLI) là công cụ giao tiếp chính của bạn với Linux. Bạn sẽ dành phần lớn thời gian để gõ lệnh vào đây. Việc làm quen với các lệnh điều hướng và thao tác tệp là bước đầu tiên và quan trọng nhất.

Các lệnh cơ bản bạn cần biết:

  • pwd: Print Working Directory – Hiển thị đường dẫn đầy đủ của thư mục hiện tại bạn đang đứng.
  • ls: List – Liệt kê nội dung (file và thư mục) trong thư mục hiện tại hoặc một thư mục được chỉ định.
    • ls -l: Hiển thị chi tiết hơn (quyền, chủ sở hữu, kích thước, thời gian chỉnh sửa).
    • ls -a: Hiển thị cả các file và thư mục ẩn (bắt đầu bằng dấu chấm .).
  • cd [thư mục]: Change Directory – Di chuyển đến một thư mục khác.
    • cd ..: Di chuyển lên thư mục cha.
    • cd ~: Di chuyển về thư mục home của người dùng hiện tại.
    • cd /: Di chuyển về thư mục gốc.
  • mkdir [tên thư mục]: Make Directory – Tạo thư mục mới.
  • rm [tên file]: Remove – Xóa file. Cẩn thận khi dùng!
    • rm -r [tên thư mục]: Xóa thư mục (recursive).
    • rm -f [tên file]: Xóa file mà không hỏi xác nhận (force).
    • rm -rf [tên thư mục]: Xóa thư mục và tất cả nội dung bên trong mà không hỏi. Cực kỳ nguy hiểm!
  • cp [nguồn] [đích]: Copy – Sao chép file hoặc thư mục.
    • cp -r [nguồn] [đích]: Sao chép thư mục (recursive).
  • mv [nguồn] [đích]: Move – Di chuyển file/thư mục hoặc đổi tên.

Tại sao quan trọng với Docker?

Bạn sẽ dùng các lệnh này hàng ngày để:

  • Di chuyển đến thư mục chứa Dockerfile của bạn.
  • Sao chép các file cấu hình vào thư mục dự án.
  • Kiểm tra nội dung của các volume được mount từ host vào container.
  • Dọn dẹp các file tạm hoặc thư mục không cần thiết.

# Ví dụ: Di chuyển đến thư mục dự án, kiểm tra nội dung
cd /home/devops/my-docker-project
pwd
# Output: /home/devops/my-docker-project

ls -l
# Output có thể trông như thế này:
# -rw-r--r-- 1 devops devops  150 Oct 27 14:00 Dockerfile
# drwxr-xr-x 2 devops devops 4096 Oct 27 13:30 app

cd app
ls
# Liệt kê file trong thư mục app

Kỹ Năng 2: Hiểu Về Cấu Trúc Hệ Thống Tệp Linux

Không giống Windows với các ổ đĩa (C:, D:), Linux tổ chức mọi thứ dưới một cây thư mục duy nhất bắt đầu từ thư mục gốc /. Việc hiểu cấu trúc này giúp bạn tìm đúng vị trí của các file cấu hình, log, hoặc dữ liệu quan trọng.

Vài thư mục quan trọng cần biết:

  • /: Thư mục gốc của toàn bộ hệ thống tệp.
  • /home/[người dùng]: Thư mục cá nhân của người dùng thông thường (ví dụ: /home/devops). Đây là nơi bạn thường lưu trữ các dự án và file cá nhân.
  • /root: Thư mục home của người dùng root (người dùng có quyền cao nhất).
  • /etc: Chứa các file cấu hình hệ thống. File cấu hình của Docker daemon đôi khi nằm ở đây (ví dụ: /etc/docker/daemon.json).
  • /var: Chứa các file dữ liệu biến đổi trong quá trình hệ thống hoạt động, như nhật ký (logs), cache, spool files…
  • /var/lib/docker: Đây là thư mục rất quan trọng đối với người dùng Docker. Docker lưu trữ hầu hết dữ liệu của nó ở đây, bao gồm hình ảnh (images), container, volume, và metadata. Khi dung lượng ổ đĩa đầy, bạn thường cần kiểm tra kích thước của thư mục này.
  • /tmp: Chứa các file tạm thời.
  • /opt: Chứa các ứng dụng của bên thứ ba không được cài đặt từ kho gói chính thức.

Tại sao quan trọng với Docker?

Bạn cần biết các vị trí này để:

  • Tìm file cấu hình Docker daemon.
  • Kiểm tra dung lượng đĩa mà Docker đang sử dụng trong /var/lib/docker.
  • Hiểu cách các volume được mount vào container liên kết với các thư mục trên host (thường nằm trong /var/lib/docker/volumes).

# Kiểm tra dung lượng thư mục Docker
sudo du -sh /var/lib/docker
# Output: 10G /var/lib/docker (Ví dụ: thư mục Docker đang dùng 10GB)

# Xem file cấu hình daemon (nếu có)
cat /etc/docker/daemon.json

Kỹ Năng 3: Làm Việc Với Quyền (Permissions) và Chủ Sở Hữu (Ownership)

Linux là hệ điều hành đa người dùng, nên hệ thống quyền truy cập file và thư mục rất chặt chẽ. Bạn sẽ thường gặp các vấn đề liên quan đến quyền khi làm việc với volume trong Docker.

Quyền truy cập được chia cho ba loại người dùng:

  • Owner: Người sở hữu file/thư mục.
  • Group: Nhóm mà owner thuộc về.
  • Others: Tất cả những người dùng khác trên hệ thống.

Các quyền cơ bản:

  • r (read): Quyền đọc nội dung (file) hoặc liệt kê nội dung (thư mục).
  • w (write): Quyền chỉnh sửa/xóa file hoặc tạo/xóa file trong thư mục.
  • x (execute): Quyền thực thi file (nếu là script/chương trình) hoặc quyền truy cập/duyệt vào thư mục.

Khi bạn dùng lệnh ls -l, cột đầu tiên hiển thị thông tin quyền, ví dụ: -rwxr-xr--. Ký tự đầu tiên cho biết loại tệp (- là file, d là thư mục, l là symbolic link). Ba ký tự tiếp theo là quyền của Owner, ba ký tự sau đó là quyền của Group, và ba ký tự cuối cùng là quyền của Others.

Các lệnh thay đổi quyền và chủ sở hữu:

  • chmod [quyền] [tên file/thư mục]: Thay đổi quyền. Quyền có thể được biểu diễn bằng ký tự (u=rw,g=r,o=r hoặc u+x,o-w) hoặc số (hệ bát phân). Ví dụ:
    • chmod +x myscript.sh: Thêm quyền thực thi cho Owner, Group, Others.
    • chmod 755 mydir: Đặt quyền rwxr-xr-x cho thư mục mydir (Owner: full, Group: read/execute, Others: read/execute). Số 7 = 4(r)+2(w)+1(x), số 5 = 4(r)+0(w)+1(x).
    • chmod -R 644 myapp/: Thay đổi quyền đệ quy (recursive) cho tất cả file/thư mục trong myapp/ thành rw-r--r--.
  • chown [chủ sở hữu]:[nhóm] [tên file/thư mục]: Thay đổi chủ sở hữu và nhóm.
    • chown devops:devops myfile.txt: Đặt chủ sở hữu và nhóm là devops cho myfile.txt.
    • chown -R www-data:www-data webapp/: Thay đổi đệ quy chủ sở hữu và nhóm thành www-data cho thư mục webapp/.
  • sudo [lệnh]: Superuser Do – Chạy một lệnh với quyền của người dùng root. Rất nhiều thao tác hệ thống (như cài đặt phần mềm, chỉnh sửa file cấu hình hệ thống, thao tác với /var/lib/docker) cần quyền root, do đó bạn sẽ thường xuyên dùng sudo.

Tại sao quan trọng với Docker?

  • Khi mount volume từ host vào container, container chạy với một người dùng (user ID) nhất định. Nếu người dùng này không có quyền truy cập file/thư mục trên host mà volume đó trỏ tới, bạn sẽ gặp lỗi “Permission Denied” bên trong container. Bạn cần dùng chownchmod trên host để cấp quyền đúng.
  • Việc chạy container với người dùng không phải root (USER instruction trong Dockerfile hoặc -u flag trong docker run) là một thực tiễn bảo mật tốt. Khi đó, bạn cần đảm bảo người dùng này có quyền cần thiết đối với các file/thư mục mà ứng dụng trong container cần truy cập.

# Giả sử ứng dụng trong container cần ghi vào /app/logs
# Thư mục /app/logs trên host được mount làm volume.
# Container chạy với UID 1000.
# Bạn cần đảm bảo UID 1000 có quyền ghi vào thư mục này trên host.

# Cách đơn giản nhất là đổi chủ sở hữu thư mục trên host thành UID 1000
sudo chown 1000:1000 /path/to/your/log/folder/on/host

# Hoặc đảm bảo nhóm hoặc người khác có quyền ghi và đổi nhóm thư mục đó
# sudo chgrp docker /path/to/your/log/folder/on/host
# sudo chmod g+w /path/to/your/log/folder/on/host

Kỹ Năng 4: Quản Lý Tiến Trình và Dịch Vụ

Mỗi chương trình đang chạy trong Linux là một tiến trình (process). Docker daemon là một dịch vụ chạy nền trên hệ thống của bạn, và mỗi container là một hoặc nhiều tiến trình con được quản lý bởi Docker daemon.

Các lệnh hữu ích:

  • ps aux: Liệt kê tất cả các tiến trình đang chạy trên hệ thống. Cột USER, PID (Process ID), %CPU, %MEM, COMMAND rất hữu ích.
  • top: Hiển thị các tiến trình đang chạy theo thời gian thực, sắp xếp theo mức sử dụng tài nguyên (CPU, RAM). Rất hữu ích để kiểm tra xem tiến trình nào đang chiếm nhiều tài nguyên.
  • kill [PID]: Gửi tín hiệu mặc định (TERM – kết thúc) đến tiến trình có PID được chỉ định.
  • kill -9 [PID]: Gửi tín hiệu KILL (buộc dừng ngay lập tức), không thể bị bỏ qua. Chỉ dùng khi tiến trình không phản hồi các tín hiệu khác.
  • systemctl status [tên dịch vụ]: Kiểm tra trạng thái của một dịch vụ hệ thống (systemd).
  • systemctl start [tên dịch vụ]: Khởi động dịch vụ.
  • systemctl stop [tên dịch vụ]: Dừng dịch vụ.
  • systemctl restart [tên dịch vụ]: Khởi động lại dịch vụ.
  • systemctl enable [tên dịch vụ]: Cấu hình dịch vụ tự khởi động cùng hệ thống.
  • systemctl disable [tên dịch vụ]: Ngăn dịch vụ tự khởi động cùng hệ thống.

Tại sao quan trọng với Docker?

  • Bạn cần dùng systemctl status docker để kiểm tra xem Docker daemon có đang chạy bình thường không.
  • Nếu Docker daemon gặp sự cố, bạn có thể cần dùng systemctl restart docker.
  • Bạn có thể dùng ps aux | grep docker để xem các tiến trình liên quan đến Docker hoặc các container cụ thể.
  • Dùng top để kiểm tra mức sử dụng CPU/RAM tổng thể trên host hoặc lọc riêng các tiến trình của Docker để xem container nào đang dùng nhiều tài nguyên.

# Kiểm tra trạng thái Docker daemon
sudo systemctl status docker

# Nếu cần, khởi động lại Docker daemon
# sudo systemctl restart docker

# Tìm tiến trình của một container cụ thể
# Đầu tiên lấy ID container: docker ps
# Sau đó tìm tiến trình: ps aux | grep [một phần ID container hoặc tên container]

Kỹ Năng 5: Những Khái Niệm Mạng Cơ Bản

Mạng là một phần không thể thiếu khi làm việc với Docker, từ việc kéo image từ Docker Hub đến việc kết nối giữa các container hoặc truy cập ứng dụng trong container từ bên ngoài. Việc hiểu các khái niệm cơ bản về mạng trong Linux giúp bạn gỡ lỗi các vấn đề kết nối.

Các lệnh và khái niệm cần biết:

  • Địa chỉ IP: Nhận dạng duy nhất cho một thiết bị trong mạng.
  • Port: Cổng logic mà các ứng dụng lắng nghe kết nối (ví dụ: port 80 cho HTTP, 443 cho HTTPS, 22 cho SSH).
  • ip addr (hoặc ifconfig trên các hệ thống cũ hơn): Hiển thị cấu hình mạng trên máy chủ Linux, bao gồm địa chỉ IP của các giao diện mạng.
  • ss (Socket Statistics) hoặc netstat (Network Statistics – đang dần lỗi thời): Hiển thị các kết nối mạng đang hoạt động, các port đang lắng nghe.
    • sudo ss -tulnp: Hiển thị các port TCP (t), UDP (u) đang lắng nghe (l), bao gồm số port (n), chương trình (p).
    • sudo netstat -tulnp: Tương tự với netstat.
  • ping [địa chỉ IP/tên miền]: Gửi các gói tin kiểm tra để xem có kết nối được đến máy chủ khác không.
  • traceroute [địa chỉ IP/tên miền]: Hiển thị đường đi của gói tin đến đích.

Tại sao quan trọng với Docker?

  • Khi bạn publish port từ container ra host (ví dụ: docker run -p 8080:80 ...), bạn đang yêu cầu Docker daemon cấu hình mạng trên host Linux để chuyển tiếp lưu lượng từ port 8080 trên host đến port 80 bên trong container.
  • Dùng ip addr để biết địa chỉ IP của host để truy cập dịch vụ.
  • Dùng ss hoặc netstat trên host để kiểm tra xem Docker daemon đã mở và lắng nghe trên port 8080 chưa.
  • Dùng ping hoặc traceroute để kiểm tra kết nối mạng từ host (hoặc từ bên trong container bằng docker exec) khi gặp sự cố mạng.

# Kiểm tra địa chỉ IP của host
ip addr show eth0 # Thay eth0 bằng tên interface mạng của bạn

# Kiểm tra xem port 8080 trên host có đang được lắng nghe không
sudo ss -tulnp | grep 8080

# Ping một địa chỉ từ host
ping google.com

Kỹ Năng 6: Quản Lý Gói Phần Mềm (Package Management)

Linux sử dụng các trình quản lý gói để cài đặt, cập nhật và gỡ bỏ phần mềm một cách có tổ chức. Việc này rất quan trọng để cài đặt Docker Engine và các công cụ hỗ trợ khác trên máy chủ Linux của bạn, cũng như cài đặt các dependency *bên trong* Dockerfile khi build image.

Các trình quản lý gói phổ biến:

  • apt (Advanced Package Tool): Sử dụng trên các bản phân phối dựa trên Debian/Ubuntu.
  • yum (Yellowdog Updater, Modified) và dnf (Dandified YUM): Sử dụng trên các bản phân phối dựa trên Red Hat (RHEL, CentOS, Fedora). dnf là phiên bản kế nhiệm của yum.

Các lệnh cơ bản (sử dụng apt làm ví dụ):

  • sudo apt update: Cập nhật danh sách các gói phần mềm có sẵn từ các kho lưu trữ (repositories). Luôn chạy lệnh này trước khi cài đặt hoặc nâng cấp.
  • sudo apt upgrade: Nâng cấp tất cả các gói đã cài đặt lên phiên bản mới nhất.
  • sudo apt install [tên gói]: Cài đặt một hoặc nhiều gói phần mềm.
  • sudo apt search [từ khóa]: Tìm kiếm gói phần mềm theo từ khóa.
  • sudo apt remove [tên gói]: Gỡ bỏ gói phần mềm (giữ lại file cấu hình).
  • sudo apt purge [tên gói]: Gỡ bỏ gói phần mềm và cả file cấu hình.

Tại sao quan trọng với Docker?

  • Đây là cách bạn cài đặt Docker Engine và các công cụ liên quan (như Docker Compose) trên máy chủ Linux.
  • Trong Dockerfile, bạn sẽ sử dụng các lệnh tương tự (không cần sudo vì thường chạy với quyền root trong quá trình build) để cài đặt các thư viện, ngôn ngữ lập trình, web server… cần thiết cho ứng dụng của bạn bên trong container.

# Ví dụ cài đặt một gói (như nginx) bên trong Dockerfile
# Sử dụng apt (trên image dựa trên Ubuntu/Debian)
RUN apt update && apt install -y nginx

# Ví dụ cài đặt một gói (như httpd) bên trong Dockerfile
# Sử dụng dnf (trên image dựa trên Fedora)
# RUN dnf install -y httpd

# Cài đặt Docker Engine trên Ubuntu
# sudo apt update
# sudo apt install ca-certificates curl gnupg
# sudo install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# sudo chmod a+r /etc/apt/keyrings/docker.gpg
# echo \
#   "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
#   "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
#   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# sudo apt update
# sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kỹ Năng 7: Làm Việc Với Tệp Văn Bản (Xem và Chỉnh Sửa)

Rất nhiều file cấu hình trong Linux và Dockerfile đều là tệp văn bản đơn giản. Bạn cần biết cách xem nội dung và chỉnh sửa chúng.

Các công cụ và kỹ thuật:

  • Trình soạn thảo:
    • nano: Một trình soạn thảo đơn giản, thân thiện với người mới bắt đầu. Dễ dàng mở, chỉnh sửa và lưu file.
    • vim (hoặc vi): Một trình soạn thảo cực kỳ mạnh mẽ và linh hoạt, phổ biến trong giới DevOps. Có đường cong học hỏi dốc, yêu cầu học các chế độ và phím tắt. Rất đáng đầu tư thời gian để học nếu bạn nghiêm túc với Linux/DevOps.
  • Xem nội dung file:
    • cat [tên file]: Concatenate – Hiển thị toàn bộ nội dung của file ra màn hình. Hữu ích cho các file nhỏ.
    • less [tên file]: Xem nội dung file từng trang một, cho phép cuộn lên xuống, tìm kiếm. Hữu ích cho các file lớn.
    • head [tên file]: Hiển thị 10 dòng đầu tiên của file.
    • tail [tên file]: Hiển thị 10 dòng cuối cùng của file. Rất hữu ích để xem nhật ký (logs).
      • tail -f [tên file]: Theo dõi file liên tục, hiển thị các dòng mới được thêm vào theo thời gian thực.
      • tail -n 50 [tên file]: Hiển thị 50 dòng cuối cùng.
  • Lọc nội dung (grep): grep [từ khóa] [tên file]: Tìm kiếm các dòng chứa “từ khóa” trong file và hiển thị chúng. Rất mạnh mẽ khi kết hợp với các lệnh khác.
  • Kết hợp lệnh (Pipes |): Dấu gạch đứng | cho phép đầu ra của một lệnh trở thành đầu vào cho lệnh tiếp theo.

Tại sao quan trọng với Docker?

  • Bạn sẽ dùng nano hoặc vim để viết và chỉnh sửa Dockerfile.
  • Xem file cấu hình Docker daemon hoặc các file cấu hình ứng dụng được mount vào container.
  • Xem log của container (dùng docker logs [container_id]) và kết hợp với grep để lọc thông tin lỗi hoặc cảnh báo quan trọng.
  • Dùng tail -f trên log file của host hoặc log file được mount từ container để theo dõi hoạt động theo thời gian thực.

# Chỉnh sửa Dockerfile
nano Dockerfile

# Xem 100 dòng cuối cùng của log Docker daemon
sudo tail -n 100 /var/log/syslog # Đường dẫn log có thể khác trên các distro khác

# Xem log của container và chỉ hiển thị các dòng chứa "ERROR"
docker logs my-app-container | grep "ERROR"

# Xem các tiến trình đang chạy và lọc ra những tiến trình có tên "nginx"
ps aux | grep nginx

Tóm Lược: Kỹ Năng Linux Cốt Lõi và Liên Hệ Với Docker

Để tiện theo dõi, dưới đây là bảng tóm tắt các kỹ năng Linux đã học và cách chúng liên kết trực tiếp với công việc sử dụng Docker:

Kỹ năng Linux Lệnh/Khái niệm ví dụ Cách áp dụng với Docker
Điều hướng Terminal pwd, ls, cd, cp, mv Di chuyển, sao chép/di chuyển file liên quan đến dự án Dockerfile, kiểm tra nội dung volume trên host.
Cấu trúc Hệ thống tệp /, /home, /etc, /var/lib/docker Tìm file cấu hình Docker daemon, quản lý dung lượng đĩa của Docker, hiểu vị trí lưu trữ của Docker.
Quyền và Chủ sở hữu ls -l, chmod, chown, sudo Xử lý lỗi “Permission Denied” khi mount volume, cấu hình quyền cho các file ứng dụng, chạy lệnh cần quyền root.
Tiến trình và Dịch vụ ps, top, systemctl Kiểm tra, giám sát tiến trình của container, quản lý trạng thái của Docker daemon.
Mạng cơ bản ip addr, ss/netstat, ping Debug vấn đề kết nối mạng, kiểm tra port được publish từ container ra host, xác định IP của host.
Quản lý Gói apt update/install, yum update/install Cài đặt Docker Engine trên host, cài đặt phần mềm cần thiết bên trong Dockerfile khi build image.
Làm việc với Tệp nano, vim, cat, tail, grep, | Viết/chỉnh sửa Dockerfile, xem/lọc log của container, xem file cấu hình.

Lời Kết

Chúc mừng bạn đã hoàn thành bước đầu tiên làm quen với các kỹ năng Linux cốt lõi cần thiết cho người dùng Docker. Đây chỉ là khởi đầu, thế giới Linux vô cùng rộng lớn và mạnh mẽ.

Đừng ngần ngại mở terminal, thực hành các lệnh đã học. Hãy thử tìm hiểu sâu hơn về các bản phân phối Linux khác nhau, về scripting shell (bash), về các công cụ giám sát nâng cao…

Việc nắm vững Linux sẽ là nền tảng vững chắc giúp bạn làm chủ Docker và phát triển sự nghiệp DevOps của mình. Hãy theo dõi các bài viết tiếp theo trong loạt bài Roadmap Docker để khám phá những chủ đề thú vị khác nhé!

Chỉ mục