Docker là gì?
Docker là một công cụ cho phép bạn tạo, triển khai và quản lý các gói nhẹ, độc lập chứa mọi thứ cần thiết để chạy ứng dụng (mã, thư viện, thời gian chạy, cài đặt hệ thống và phụ thuộc). Các gói này được gọi là container.
Mỗi container được triển khai với CPU, bộ nhớ, khối I/O và tài nguyên mạng riêng, tất cả đều không phụ thuộc vào một hạt nhân và hệ điều hành riêng lẻ. Mặc dù có thể dễ dàng so sánh Docker và máy ảo, nhưng chúng khác nhau ở cách chia sẻ hoặc phân bổ tài nguyên.
Container giúp mở rộng chức năng Linode của bạn theo nhiều cách. Ví dụ, bạn có thể triển khai nhiều phiên bản nginx với nhiều giai đoạn (như phát triển và sản xuất). Không giống như triển khai nhiều máy ảo, các container được triển khai sẽ không làm cạn kiệt tài nguyên Linode của bạn.
Hình ảnh Docker
Mỗi container Docker được tạo từ một hình ảnh. Bạn kéo hình ảnh từ một sổ đăng ký Docker (chẳng hạn như Docker Hub chính thức ) và sử dụng chúng để xây dựng container. Một hình ảnh duy nhất có thể tạo ra nhiều container. Ví dụ: bạn có thể sử dụng hình ảnh nginx mới nhất để triển khai một container máy chủ web cho:
- Hoạt động phát triển web
- Kiểm tra
- Sản xuất
- Ứng dụng web
Dockerfiles
A Dockerfile
là một tệp văn bản chứa các lệnh cần thiết để lắp ráp một hình ảnh. Sau khi Dockerfile được viết, người quản trị sử dụng docker build
lệnh để tạo một hình ảnh dựa trên các lệnh trong tệp. Các lệnh và thông tin trong đó Dockerfile
có thể được cấu hình để sử dụng các phiên bản phần mềm và phụ thuộc cụ thể để đảm bảo triển khai nhất quán và ổn định.
Dockerfile sử dụng các lệnh sau để xây dựng hình ảnh:
- THÊM – sao chép các tập tin từ nguồn trên máy chủ sang hệ thống tập tin riêng của vùng chứa tại đích đã thiết lập.
- CMD – thực hiện một lệnh cụ thể trong vùng chứa.
- ENTRYPOINT – thiết lập một ứng dụng mặc định được sử dụng mỗi khi tạo một vùng chứa bằng hình ảnh.
- ENV – thiết lập biến môi trường.
- EXPOSE – mở một cổng cụ thể để cho phép kết nối mạng giữa container và thế giới bên ngoài.
- TỪ – xác định hình ảnh cơ sở được sử dụng để bắt đầu quá trình xây dựng.
- NGƯỜI BẢO TRÌ – xác định họ tên đầy đủ và địa chỉ email của người tạo hình ảnh.
- RUN – lệnh thực thi trung tâm cho Dockerfiles.
- NGƯỜI DÙNG – thiết lập UID (tên người dùng) sẽ chạy vùng chứa.
- VOLUME – cho phép truy cập từ vùng chứa đến một thư mục trên máy chủ.
- WORKDIR – thiết lập đường dẫn nơi lệnh được xác định bằng CMD sẽ được thực thi.
Không phải lệnh nào cũng phải được sử dụng. Dưới đây là ví dụ Dockerfile đang hoạt động, chỉ sử dụng các lệnh MAINTAINER
, FROM
, và RUN
:
MAINTAINER NAME EMAIL
FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade && apt-get install -y build-essential
Docker SWARM
Docker giúp dễ dàng kết nối các máy chủ lại với nhau để tạo thành một cụm, được gọi là Docker Swarm. Sau khi bạn đã tạo một trình quản lý Swarm hoặc leader và đính kèm các nút vào leader, bạn có thể mở rộng triển khai container. Leader sẽ tự động điều chỉnh cụm bằng cách thêm hoặc xóa các tác vụ để duy trì trạng thái mong muốn.
Một nút là một phiên bản duy nhất của công cụ Docker tham gia vào Swarm. Bạn có thể chạy một hoặc nhiều nút trên một Linode duy nhất. Trình quản lý Swarm sử dụng cân bằng tải đầu vào để hiển thị các dịch vụ có thể được cung cấp cho Swarm. Docker Swarm cũng có thể:
- Kiểm tra tình trạng của thùng chứa.
- Khởi chạy một tập hợp các container cố định từ một hình ảnh Docker duy nhất.
- Tăng hoặc giảm số lượng container (tùy thuộc vào tải hiện tại).
- Thực hiện cập nhật liên tục trên các vùng chứa.
- Cung cấp khả năng dự phòng và chuyển đổi dự phòng.
- Thêm hoặc bớt số lần lặp lại của container khi nhu cầu thay đổi.
Các bước tiếp theo
Để khám phá Docker sâu hơn, hãy truy cập Tài liệu tham khảo nhanh về Docker , hướng dẫn triển khai máy chủ web Node.js hoặc hướng dẫn Cách cài đặt Docker và triển khai LAMP Stack của Linode .
Thông tin thêm
Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.