Khi chưa có Docker, việc cài đặt và deploy lên một hoặc nhiều server rất vất vả. Từ việc phải cài đặt các công cụ, môi trường cần cho ứng dụng. Sự khác nhau giữa các môi trường từ local đến các server chính là nguyên nhân Docker ra đời. Nó giúp bạn có thể chạy ứng dụng mà ko cần phải quan tâm gì nhiều đến môi trường phát triển cũng như môi trường production.
Docker là gì?
Docker là một bộ nền tảng dưới dạng các sản phẩm dịch vụ (PaaS) sử dụng ảo hóa cấp hệ điều hành để phân phối phần mềm trong các gói được gọi là container. Các Docker container được cách ly với nhau và đóng gói phần mềm, thư viện và file config của riêng chúng. chúng có thể giao tiếp với nhau thông qua các kênh được xác định rõ. Tất cả các container được chạy bởi một nhân hệ điều hành duy nhất và do đó sử dụng ít tài nguyên hơn các máy ảo.
- Tác giả: Solomon Hykes
- Phát triển bởi: Docker, Inc.
- Phát hành lần đầu: 20/03/2013
- Phiên bản ổn định: 19.03.12
- Github Repository: github.com/docker/docker-ce
- Viết bằng ngôn ngữ: Go
- Operating system: Linux, Windows, macOS
- Platform: x86-64, ARM, s390x, ppc64le
- Type OS-level virtualization
- License Binaries: Freemium software as a service
- Source code: Apache License 2.0
- Website www.docker.com
Vì sao bạn nên sử dụng Docker?
- Khởi động dễ dàng và nhanh chóng hơn máy ảo
- Có thể chạy từng service 1 cách độc lập, hoặc liên kết với nhau
- Dễ dàng phân phối cho người sử dụng khác hoặc deploy trên các server với nhau chỉ bằng việc cung cấp file config (DockerFile)
Các khái niệm cần hiểu về Docker
- Docker Hub: là nơi lưu trữ Docker Images. Bạn sẽ tìm thấy Docker image trên Docker Hub hoàn toàn miễn phí.
- Docker Client: Cách mà bạn tương tác với docker thông qua command trong terminal. Docker Client sẽ sử dụng API gửi lệnh tới Docker Daemon.
- Docker Daemon: Quản lý images, containers, networks và volume.
- Docker Volumes: Nơi lưu trữ dữ liệu cho việc sử dụng và tạo apps.
- Docker Networking: cho phép kết nối các container lại với nhau.
- Docker Compose: Có sẵn khi cài Docker, là công cụ cho phép run app với nhiều Docker containers 1 cách dễ dàng hơn. Docker Compose cho phép bạn config các command trong file docker-compose.yml để sử dụng lại.
- Docker Swarm: để phối hợp triển khai container.
- Docker Desktop: là một công cụ dành cho máy MacOS và Windows để xây dựng và chia sẻ các ứng dụng và dịch vụ được đóng gói.
- Docker Registry: là nơi lưu trữ riêng của Docker Images. Images được push vào registry và client sẽ pull images từ registry. Có thể sử dụng registry của riêng bạn hoặc registry của các nhà cung cấp như : AWS, Google Cloud, Microsoft Azure.
Hướng dẫn cài đặt Docker trên Windows 10
Để cài đặt Docker trên Windows 10, các bạn tải công cụ Docker Desktop để tạo và quản lý docker containers trên
Sau khi tải file cài đặt về, các bạn mở file cài đặt:
Đầu tiên nó sẽ download các package còn thiếu
Khởi động các tính nằng của Hyper-V Windows
Ngoài ra còn lựa chọn thêm shortcut lên màn hình Desktop
Quá trình cài đặt diễn ra ở bên dưới.
Cài đặt xong thì bấm [Close and restart]
Hướng dẫn cài đặt Docker trên Ubuntu
Trên Ubuntu bạn cũng có thể cài đặt Docker Desktop
Hoặc cài đặt thông qua command line bên dưới:
Gỡ bỏ phiên bản cũ của Docker nếu đã cài đặt
sudo apt-get remove docker docker-engine docker.io containerd runc
Cập nhật các package cần thiết
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
Thêm Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Bổ sung repository
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Cài đặt Docker CE
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
Tạo container đầu tiên của bạn
sudo docker run hello-world
Với những lợi ích của Docker như trên, sẽ giúp ích rất nhiều cho các nhà phát triển. Sau khi cài đặt docker các bạn nên tham khảo các bài viết sau:
Trường hợp bạn muốn cài đặt trên HDH MacOS thì vui lòng tham khảo bài viết sau:
Nguồn: vinasupport.com
Cám ơn ad đã chia sẻ! Bài viết rất hấp dẫn