# Docker - Sử dụng cơ bản **Published by:** [ESC Base](https://paragraph.com/@escbase/) **Published on:** 2024-09-12 **URL:** https://paragraph.com/@escbase/docker-s-d-ng-c-b-n ## Content Hướng Dẫn Cơ Bản về DockerDocker là một nền tảng mã nguồn mở cho phép bạn tạo, triển khai, và chạy các ứng dụng trong các container (thùng chứa). Container là các môi trường độc lập, cách ly giúp bạn đóng gói ứng dụng cùng với tất cả các phụ thuộc của nó, từ đó có thể chạy trên bất kỳ hệ thống nào hỗ trợ Docker mà không lo vấn đề tương thích.Lợi ích của DockerNhẹ và nhanh: Container chỉ chứa những thành phần cần thiết, nên nhẹ hơn so với máy ảo.Di động: Chạy được trên bất kỳ hệ điều hành nào có Docker, giúp đảm bảo tính đồng nhất từ phát triển đến triển khai.Cách ly: Mỗi container là một môi trường riêng biệt, không ảnh hưởng lẫn nhau.Quản lý dễ dàng: Docker có sẵn công cụ để quản lý container, image, và phiên bản ứng dụng dễ dàng.Các thành phần chính của DockerDocker Engine: Là môi trường thực thi cho các container. Docker Engine là một dịch vụ chạy trên máy chủ để xây dựng và quản lý các container.Docker Container: Là một gói phần mềm đóng gói ứng dụng và tất cả các phụ thuộc cần thiết (thư viện, công cụ,...) trong một môi trường độc lập.Docker Image: Là bản mẫu (template) của container. Bạn có thể tạo container từ image này. Một image bao gồm toàn bộ mã ứng dụng, cấu hình và các tài nguyên phụ thuộc.Docker Hub: Là kho lưu trữ các image, tương tự như GitHub cho mã nguồn. Bạn có thể tìm kiếm và tải về các image từ Docker Hub, hoặc đẩy lên để chia sẻ.Cài Đặt DockerĐể bắt đầu sử dụng Docker, bạn cần cài đặt Docker Desktop (cho Windows, macOS) hoặc Docker Engine (cho Linux). Bạn có thể tải về tại trang chính thức của Docker: docker.com. Cài đặt trên Ubuntu:sudo apt-get update sudo curl -fsSL https://get.docker.com | bash docker --version Cài docker-composesudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose docker-compose --version Các lệnh cơ bản trong DockerDưới đây là một số lệnh Docker cơ bản để thao tác với container và image.Kiểm tra phiên bản Docker:docker --version Chạy một container từ image: Ví dụ, chạy một container với image nginx:docker run nginx Tùy chọn -d để chạy container trong chế độ nền:docker run -d nginx Liệt kê các container đang chạy:Liệt kê tất cả container (bao gồm cả container đã dừng):docker ps -a Dừng một container đang chạy:docker stop <container_id> Xóa một container:docker rm <container_id> Tải về image từ Docker Hub: Tải về image của nginx:Xem danh sách image trên máy:Xóa một image:docker rmi <image_id> Vào bên trong container: Bạn có thể truy cập vào bên trong container giống như SSH vào một máy chủ. Mở terminal vào container:docker exec -it <container_id> /bin/bash Tạo DockerfileDockerfile là một file chứa các lệnh để tạo Docker image. Bạn có thể sử dụng Dockerfile để định nghĩa môi trường và cài đặt ứng dụng tự động. Ví dụ một Dockerfile đơn giản:# Sử dụng image cơ bản từ Ubuntu FROM ubuntu:20.04 # Cài đặt các gói phụ thuộc RUN apt-get update && apt-get install -y \ python3 \ python3-pip # Copy mã nguồn vào container COPY . /app # Đặt thư mục làm việc WORKDIR /app # Chạy lệnh khi container khởi động CMD ["python3", "app.py"] FROM: Chọn image cơ bản.RUN: Chạy lệnh để cài đặt các gói hoặc thực hiện hành động.COPY: Sao chép mã nguồn vào trong container.WORKDIR: Đặt thư mục làm việc trong container.CMD: Chỉ định lệnh sẽ chạy khi container khởi động.Build và chạy image từ DockerfileBuild image từ Dockerfile:docker build -t my-python-app . Chạy container từ image vừa build:docker run my-python-app Docker ComposeDocker Compose cho phép bạn quản lý và chạy nhiều container cùng lúc bằng cách định nghĩa trong một file docker-compose.yml. File này giúp cấu hình toàn bộ ứng dụng với nhiều container và liên kết chúng lại với nhau. Ví dụ về file docker-compose.yml:version: '3' services: web: image: nginx ports: - "8080:80" database: image: mysql environment: MYSQL_ROOT_PASSWORD: example web và database là hai dịch vụ container.nginx và mysql là các image được sử dụng.ports: ánh xạ cổng giữa máy chủ và container.environment: cấu hình các biến môi trường.Chạy tất cả các dịch vụ trong Docker Compose:Dừng các dịch vụ:Xoá dữ liệu container:docker compose down -v Check logs:docker compose logs -f Kết LuậnDocker giúp bạn dễ dàng đóng gói và triển khai ứng dụng, đảm bảo sự đồng nhất trên nhiều môi trường. Các khái niệm như container, image, Dockerfile và Docker Compose giúp bạn quản lý ứng dụng dễ dàng, từ môi trường phát triển đến triển khai thực tế. ## Publication Information - [ESC Base](https://paragraph.com/@escbase/): Publication homepage - [All Posts](https://paragraph.com/@escbase/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@escbase): Subscribe to updates - [Twitter](https://twitter.com/escbaseofficial): Follow on Twitter