Docker là một nền tảng giúp bạn tạo, triển khai và chạy các ứng dụng trong các container. Container là một môi trường tách biệt, bao gồm tất cả các thư viện, dependency mà ứng dụng cần, giúp ứng dụng chạy được trên bất kỳ máy nào mà không cần cấu hình lại môi trường
1 . Ưu điểm
-
Không phụ thuộc hệ điều hành.
-
Dễ triển khai, di chuyển và mở rộng.
-
Giúp phát triển, test và deploy đồng nhất.
2. Cài đặt Docker
Windows
-
Tải Docker Desktop: https://www.docker.com/products/docker-desktop
-
Cài đặt và bật tính năng WSL2 nếu bạn dùng Windows.
-
Kiểm tra:
docker --versiondocker compose version
Linux
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version
macOS
Tải Docker Desktop cho Mac và làm tương tự như Windows.3 Các khái niệm cơ bản trong Docker
Image: File template chứa ứng dụng và environment.Ví dụ: node:18
Container: Thể hiện của image đang chạy. Bạn có thể tạo nhiều container từ cùng một image
Dockerfile: File cấu hình để build image
Volume: Dùng để lưu dữ liệu ngoài container, không bị mất khi container xóa
Network: Kết nối giữa các container
4. Các lệnh Docker hay dùng
Chạy container:docker run -it --name mycontainer rn-build
-it : interactive + terminal
--name : đặt tên cho container
rn-build : image sử dụng
Xem container đang chạy:
Vào container đang chạy:
Hoặc vào 1 docker rn-build với thư mục app
Xem image có sẵn:
Xóa image:
Build image từ Dockerfile:
Gắn volume vào container:
Chạy container với network:
Docker Compose
Docker Compose giúp chạy nhiều container cùng lúc theo cấu hình file docker-compose.yml.
docker psXem tất cả container (kể cả đã dừng):
docker ps -aDừng container:
docker stop mycontainerXóa container:
docker rm mycontainer
Vào container đang chạy:
docker exec -it mycontainer bash
Hoặc vào 1 docker rn-build với thư mục app
docker run -it -v $(pwd):/app rn-build /bin/bash
Xem image có sẵn:
docker images
Xóa image:
docker rmi rn-build
Build image từ Dockerfile:
docker build -t myapp:1.0 .Tạo volume:
docker volume create mydata
Gắn volume vào container:
docker run -v mydata:/data -it ubuntuTạo network:
docker network create mynetwork
Chạy container với network:
docker run --network=mynetwork -it ubuntu
Docker Compose
Docker Compose giúp chạy nhiều container cùng lúc theo cấu hình file docker-compose.yml.
Ví dụ file docker-compose.yml:
Các lệnh Compose hay dùng:
version: "3" services: web: image: nginx ports: - "8080:80" db: image: mysql:8 environment: MYSQL_ROOT_PASSWORD: mypassword
Các lệnh Compose hay dùng:
docker-compose up # Chạy tất cả containerdocker-compose down # Dừng và xóa container, networkdocker-compose build # Build imagedocker-compose logs # Xem log của các service
Ví dụ thực tế: Chạy ứng dụng Node.js
Tạo Dockerfile
Build image
Chạy container
Tạo Dockerfile
FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "index.js"]
Build image
docker build -t mynodeapp .
Chạy container
docker run -p 3000:3000 mynodeappXem log container
docker logs <container>
Xem resource usage
docker stats
Xem chi tiết container
docker inspect <container>
Copy file từ container về host
docker cp <container>:<path> <host_path>
Tạo image từ container đang chạy
docker commit <container> <new_image_name>
Lệnh tìm 1 docker và xóa các container + image đang sử dụng, ví dụ xóa rn-build
docker ps -a -q --filter ancestor=rn-build | xargs -r docker stopdocker ps -a -q --filter ancestor=rn-build | xargs -r docker rmdocker image rm -f rn-build 2>/dev/null || true


Nhận xét
Đăng nhận xét