- Tham gia
- 24/5/19
- Bài viết
- 131
- Thích
- 0
- Điểm
- 16
Docker là một trong những công nghệ phát triển mấy năm gần đây. Ngoài việc giúp cho việc tổ chức, quản lý việc lập trình trở nên gọn gàng và dễ dàng hơn. Docker còn giúp cho các nhà phát triển có một hướng đi mới cho các nhà phát triển xây dựng giải pháp và kỹ thuật cho dự án mới
Docker là gì ?
Docker như một giải pháp tạo ra 1 chiếc Container, chứa đựng cho bạn tất cả những thư viện và phần mềm. Bạn có thể tưởng tượng Docker giống như " máy tính " bên trong máy tính và bạn có thể tạo sẵn các môi trường này và chia sẻ với người khác (Images). Docker images và containers nhanh chóng trở thành công cụ hỗ trợ đắt lực cho nhà phát triển phần mềm. Hiện nay, mọi thứ đều có thể được docker hóa (dockerized). Bạn có thể tìm thấy Docker image cho tất cả các nhu cầu mà bạn cần. Nếu không tìm thấy, bạn có thể tự tạo một Docker image phù hợp với nhu cầu của mình. Và bây giờ, chúng ta đã có thêm 1 Docker image nữa đáp ứng cho nhu cầu mới.
Xem thêm: Phần mềm học tiếng anh
Docker có phải là giải pháp ảo hóa ?
Bạn có thể dễ dàng nhận thấy, sự tương đồng giữa giải pháp ảo hoá với Docker. Tuy nhiên, vẫn có sự khác biệt giữa ảo hoá và Docker là mỗi giải pháp sẽ ứng dụng cho các mục đích khác nhau
Xem thêm: phần mềm quản lý kho
Các giải pháp về ảo hóa sẽ giúp tạo ra các máy ảo (Virtual machine). Virtual machine (VM) là một hệ thống giả lập của một máy tính dựa trên phần cứng của máy tính. Trên VM, chúng ta có thể cài đặt hệ điều hành và các phần mềm cần thiết cho các yêu cầu sử dụng cụ thể. Hệ điều hành và các phần mềm sẽ chia sẻ tài nguyên phần cứng của máy tính cài phần mềm tạo VM. Phần mềm dùng để quản lý và tạo các máy ảo được gọi là
Trong khi các VM được tạo ra khi ảo hóa toàn bộ máy tính thì Docker Containers chỉ ảo hóa hệ điều hành của máy chủ (Host). Mỗi Container chia sẻ nhân của hệ điều hành và các thư viện trên máy Host. Những thành phần được chia sẻ giữa máy Host và các Containers ở trạng thái chỉ đọc. Việc chia sẻ nhân của hệ điều hành và các thư viện giúp cho máy Host có thể chạy được nhiều Containers và sử dụng ít tài nguyên trên máy Host. Nhờ vào việc chia sẻ này mà kích thước của các Containers rất nhẹ, thậm chí chỉ vài chục Megabytes và thời gian khởi
động chỉ vài chục giây. Với kích thước nhỏ gọn như vậy nên các tập tin ảnh của Docker Containers (hay còn gọi Docker Images) sẽ được chia sẻ dễ dàng thông qua các hệ thống Docker Registry công cộng (như Docker Hub, Google Container Registry, Amazon ECR,…) hoặc các Docker Registry cục bộ (do các doanh nghiệp tự xây dựng). Chính nhờ điều này mà Docker được sử dụng ngày càng rộng rải trong nhiều lĩnh vực khác nhau như phát triển phần mềm, kiểm thử phần mềm, machine learning, data science, system administration và các hệ thống cung cấp dịch vụ.
Ứng dụng Docker
Với Machine Learning và Data Science, Docker sẽ hỗ trợ cho việc xây dựng các Container mà trong đó có chứa các thư viện, gói phần mềm cần thiết cho việc học tập, nghiên cứu các dự án về Machine Learning và Data Science. Các Container này có thể được đóng gói thành các Images và chia sẻ cho những người có nhu cầu nghiên cứu và học tập về Machine Learning và Data Science một cách nhanh chóng. Chính nhờ điều này sẽ giúp cho các nhóm nghiên cứu phối hợp làm việc với nhau dễ dàng hơn nhờ một hệ thống các phần mềm và thư viện chuẩn và thống nhất. Việc cập nhật các thư viện, phần mềm trong các Docker Images cũng được thực hiện dễ dàng.
Docker là gì ?
Docker như một giải pháp tạo ra 1 chiếc Container, chứa đựng cho bạn tất cả những thư viện và phần mềm. Bạn có thể tưởng tượng Docker giống như " máy tính " bên trong máy tính và bạn có thể tạo sẵn các môi trường này và chia sẻ với người khác (Images). Docker images và containers nhanh chóng trở thành công cụ hỗ trợ đắt lực cho nhà phát triển phần mềm. Hiện nay, mọi thứ đều có thể được docker hóa (dockerized). Bạn có thể tìm thấy Docker image cho tất cả các nhu cầu mà bạn cần. Nếu không tìm thấy, bạn có thể tự tạo một Docker image phù hợp với nhu cầu của mình. Và bây giờ, chúng ta đã có thêm 1 Docker image nữa đáp ứng cho nhu cầu mới.
Xem thêm: Phần mềm học tiếng anh
Docker có phải là giải pháp ảo hóa ?
Bạn có thể dễ dàng nhận thấy, sự tương đồng giữa giải pháp ảo hoá với Docker. Tuy nhiên, vẫn có sự khác biệt giữa ảo hoá và Docker là mỗi giải pháp sẽ ứng dụng cho các mục đích khác nhau
Xem thêm: phần mềm quản lý kho
Các giải pháp về ảo hóa sẽ giúp tạo ra các máy ảo (Virtual machine). Virtual machine (VM) là một hệ thống giả lập của một máy tính dựa trên phần cứng của máy tính. Trên VM, chúng ta có thể cài đặt hệ điều hành và các phần mềm cần thiết cho các yêu cầu sử dụng cụ thể. Hệ điều hành và các phần mềm sẽ chia sẻ tài nguyên phần cứng của máy tính cài phần mềm tạo VM. Phần mềm dùng để quản lý và tạo các máy ảo được gọi là
Trong khi các VM được tạo ra khi ảo hóa toàn bộ máy tính thì Docker Containers chỉ ảo hóa hệ điều hành của máy chủ (Host). Mỗi Container chia sẻ nhân của hệ điều hành và các thư viện trên máy Host. Những thành phần được chia sẻ giữa máy Host và các Containers ở trạng thái chỉ đọc. Việc chia sẻ nhân của hệ điều hành và các thư viện giúp cho máy Host có thể chạy được nhiều Containers và sử dụng ít tài nguyên trên máy Host. Nhờ vào việc chia sẻ này mà kích thước của các Containers rất nhẹ, thậm chí chỉ vài chục Megabytes và thời gian khởi
động chỉ vài chục giây. Với kích thước nhỏ gọn như vậy nên các tập tin ảnh của Docker Containers (hay còn gọi Docker Images) sẽ được chia sẻ dễ dàng thông qua các hệ thống Docker Registry công cộng (như Docker Hub, Google Container Registry, Amazon ECR,…) hoặc các Docker Registry cục bộ (do các doanh nghiệp tự xây dựng). Chính nhờ điều này mà Docker được sử dụng ngày càng rộng rải trong nhiều lĩnh vực khác nhau như phát triển phần mềm, kiểm thử phần mềm, machine learning, data science, system administration và các hệ thống cung cấp dịch vụ.
Ứng dụng Docker
Với Machine Learning và Data Science, Docker sẽ hỗ trợ cho việc xây dựng các Container mà trong đó có chứa các thư viện, gói phần mềm cần thiết cho việc học tập, nghiên cứu các dự án về Machine Learning và Data Science. Các Container này có thể được đóng gói thành các Images và chia sẻ cho những người có nhu cầu nghiên cứu và học tập về Machine Learning và Data Science một cách nhanh chóng. Chính nhờ điều này sẽ giúp cho các nhóm nghiên cứu phối hợp làm việc với nhau dễ dàng hơn nhờ một hệ thống các phần mềm và thư viện chuẩn và thống nhất. Việc cập nhật các thư viện, phần mềm trong các Docker Images cũng được thực hiện dễ dàng.