Giới thiệu về Docker
Docker là nền tảng công nghệ tiên tiến giúp đơn giản hóa quá trình xây dựng, triển khai và quản lý ứng dụng thông qua việc sử dụng containers. Docker cho phép bạn đóng gói ứng dụng và tất cả các phụ thuộc của nó vào một container độc lập với môi trường hệ thống, đảm bảo rằng ứng dụng hoạt động ổn định trên mọi nền tảng và môi trường máy chủ.
Lợi ích của Docker
- Đơn giản hóa việc triển khai ứng dụng.
- Tiết kiệm tài nguyên hệ thống.
- Dễ dàng thiết lập môi trường làm việc.
- Cung cấp môi trường độc lập cho quá trình phát triển.
Cài đặt Docker
Docker hỗ trợ trên nhiều hệ điều hành khác nhau. Bạn có thể tìm hiểu hướng dẫn cài đặt cụ thể cho hệ điều hành của mình trên trang web chính thức của Docker.
Sau khi cài đặt, kiểm tra phiên bản Docker của bạn bằng cách chạy các lệnh sau trong command line:
docker version
// hoặc
Docker info
Các khái niệm Cơ Bản về Docker
- Docker Client: Giao diện tương tác với Docker thông qua dòng lệnh.
- Docker Daemon: Lắng nghe yêu cầu từ Docker Client và thực hiện các nhiệm vụ.
- Docker Volumes: Dùng để lưu trữ dữ liệu cho các container.
- Docker Registry: Nơi lưu trữ các Docker Images, cho phép người dùng push và pull images.
- Docker Hub: Dịch vụ đám mây lưu trữ và chia sẻ Docker containers.
- Docker Repository: Tập hợp các Docker Images cùng tên nhưng khác tag.
- Docker Networking: Cho phép các container giao tiếp với nhau và với mạng bên ngoài một cách linh hoạt.
- Docker Compose: Công cụ quản lý và triển khai nhiều container một cách dễ dàng.
- Docker Swarm: Giải pháp phối hợp triển khai containers.
- Docker Services: Một bộ sưu tập các containers của một ứng dụng, mỗi service chạy một image đã được định nghĩa.
Images và Containers
Docker Images
Docker Image là một tệp tin bất biến chứa mã nguồn, thư viện, phụ thuộc, công cụ và các tệp cần thiết để chạy một ứng dụng. Những images này còn được gọi là snapshots
, thể hiện ứng dụng và môi trường ảo của nó tại một thời điểm nhất định.
- Docker Images không thể được chạy trực tiếp; chúng chỉ hoạt động như bản mẫu để tạo ra containers.
Docker Container
Container là một实例 hóa của một image. Nó bao gồm một môi trường chạy độc lập, có tất cả các thành phần cần thiết để ứng dụng hoạt động, cùng với các thay đổi và cấu hình bổ sung.
- Containers có thể được tạo, khởi động, dừng và xóa một cách nhanh chóng. Hệ thống container độc lập với nhau và với hệ thống host, cho phép cài đặt dễ dàng cho các thành viên trong nhóm.
- Khác với máy ảo cần ảo hóa ở tầng phần cứng, containers sử dụng một kernel chung và giả lập môi trường để hoạt động độc lập, giúp tiết kiệm tài nguyên.
Mối Quan Hệ Giữa Images và Containers
Containers và Images đều là những khái niệm quan trọng trong Docker. Mỗi container được tạo ra từ một image cụ thể, và một image có thể được sử dụng để tạo ra nhiều containers khác nhau, mỗi container có thể có cấu hình môi trường riêng.
Images có thể tồn tại mà không cần đến Containers, trong khi Containers cần phải dựa vào một Image đã có sẵn để hoạt động.
Dockerfile
Dockerfile là một tệp văn bản chứa các chỉ thị cho quá trình xây dựng một Docker image. Nó định nghĩa cách tạo ra image, bao gồm các bước cài đặt phần mềm, cấu hình môi trường và thực thi lệnh khởi động.
Cấu trúc Dockerfile:
- FROM: Chỉ định base image.
- RUN: Thực thi một lệnh trong môi trường container, thường để cài đặt phần mềm.
- COPY hoặc ADD: Sao chép tệp từ máy host vào container.
- WORKDIR: Xác định thư mục làm việc mặc định cho các lệnh tiếp theo.
- EXPOSE: Khai báo các cổng mà container sẽ lắng nghe.
- CMD/ENTRYPOINT: Xác định lệnh mặc định khi container khởi chạy.
Ví Dụ
Dưới đây là một ví dụ về Dockerfile để tạo ra một image ứng dụng web Node.js:
FROM node:alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
Để xây dựng và chạy image này, chuyển đến thư mục chứa Dockerfile và chạy lệnh sau:
docker build -t myapp .
docker run -p 3000:3000 myapp
Giải thích lệnh:
docker build
được sử dụng để xây dựng Docker image từ Dockerfile.-t myapp
: Đặt tên và tag cho image làmyapp
..
Chỉ định đường dẫn đến thư mục chứa Dockerfile.docker run
để khởi chạy Docker container từ image đã tạo.-p 3000:3000
mở cổng 3000 trên máy host và liên kết với cổng 3000 trong container.
Sau khi container chạy, bạn có thể truy cập vào container bằng lệnh:
docker exec -it myapp sh
Kết luận
Bài viết trên đã cung cấp kiến thức cơ bản về Docker và cách sử dụng nó để quản lý ứng dụng. Hi vọng thông tin này sẽ hữu ích cho bạn trong việc khám phá và làm quen với Docker. Để tìm hiểu sâu hơn, bạn có thể tham khảo thêm tại trang web chính thức của Docker.
source: viblo