Mục đích Docker được tạo ra là gì?

Mình thắc mắc mục đích docker tạo ra để chạy trên các máy dev với nhau (để môi trường các máy dev y như nhau) hay chạy trên máy dev và production trên server (máy dev code chạy sao đưa lên server chạy y vậy). Thanks

1 Like

Hi there,

Cậu có thể tham khảo topic dưới đây:

Nhìn chung, docker là công nghệ container, mục đích giúp cậu tạo ra các lightweight container trong thời gian ngắn. Vậy nên, cả 2 use case cậu đề cập đều là ứng dụng của docker (đừng nhầm “ứng dụng của docker” và “mục đích design docker” nha :smile:).

Như đề cập ở topic tớ refer ở trên, docker - hay container technology - là must have khi cậu xây dựng một hệ thống microservice. Nó giúp cậu deploy các instance của mỗi service một cách nhanh chóng với chỉ 1 image (giúp tăng scalability).

Tại thời điểm hiện tại, hầu hết (tớ nghĩ là 100%) các cloud đều support docker với mục đích kể trên. Vậy nên, sẽ rất có ích nếu như mọi người học docker.

10 Likes

Đoạn này có vẻ những người làm marketing đang có tác dụng. Đám người này đang đẩy Docker, Kubernetes thành những cái “must-have” nhưng rồi cũng chỉ là trend thôi, giống như Web OS trước đây vậy. Cuối cùng người ta cũng hiểu rằng… rồi thì là mà “The Network is the Computer", kiểu như bên lĩnh vực phát triển con người, gì đi nữa cũng quay về với giá trị “làm người” trên hết thảy mọi sự :smiley:

6 Likes

Mình thường deploy code lên VPS, mỗi khi thuê VPS thì nhà cung cấp dịch vụ đưa cho 1 cái máy tính trống trơn phải tự cài database server, web server, FTP server, mở port này kia mà do trình non nên cài 1 tiếng mà config với sửa lỗi server hết 4 ngày. Mà trong quá trình web chạy mình cũng thấp thỏm lo sợ là web đã config đúng chưa, có bị hacker scan port VPS để biến thành botnet đào bitcoin hay chèn script quảng vào không nữa. Mình đang học docker và thấy nó rất có tiềm năng khi deploy app, đặc biệt là VPS hết hạn phải thuê VPS mới và di chuyển dữ liệu giữa các máy. Trong tương lai có thể docker sẽ phổ biến như git, thành kĩ năng bắt buộc phải có của dev nên mình lo xa mỗi ngày dành 1 tiếng học docker.

Có phải web OS trên smartTV không bác?

2 Likes

:smile:
You have a point! :smile:

Có lẽ tớ nên đề cập lại thành:

Như đề cập ở topic tớ refer ở trên, docker - hay bất cứ container technology nào khác - là must have khi cậu xây dựng một hệ thống microservice ở thời điểm hiện tại.

Thực ra nó không hẳn là must have. Docker (hoặc Docker + k8s), trong context microservice, được dùng để giải quyết vấn đề scalability và service avaiability một cách nhanh gọn, thế nên nó chỉ là must have với hệ thống gặp vấn đề đó.
Một hệ thống microservice hoặc bất cứ hệ thống nào khác, nếu không có nhu cầu đó (chẳng hạn như họ không có đủ traffic để có nhu cầu scale nhanh chóng), thì tớ nghĩ họ không cần tới docker (hoặc docker + k8s) cả :smile:

Tớ đồng ý với cậu, có thể docker đang là trend của thời kỳ này, và tớ cũng không biết về sau có công nghệ nào advance hơn, giúp giải quyết vấn đề scale service nhanh chóng tốt hơn docker không. Cơ mà hiện tại, docker đang là container technology phổ biến nhất trong industry, nên tớ vẫn highly recommend việc học và ứng dụng nó trong software development một cách hiệu quả :smile:

5 Likes

Cái này hơi sai. Này dùng vagrant thì phù hợp hơn.
Docker phù hợp với môi trường production. Mục đích của docker là đóng gói môi trường lại, đỡ phải phụ thuộc vào mội trường ngoài.
Vi dụ binh thường xài posgresql, phải tải về dựa trên os mà tải bảng phù hợp. giờ xài docker rồi thi chọn version phù hợp tải image về start lên thôi.
Dịch nôm na. Docker giống như một con tàu lớn, chuyên chở container(công ta nơ) ấy. Mỗi container chính là application của mình.

5 Likes

Hình như hiện giờ là như thế, mình không theo dõi nó nên không biết nó sau 2010 thì nó ra làm sao. Nhưng nó chính là cái này này https://vi.wikipedia.org/wiki/WebOS

4 Likes

Đang định thử xem liệu một Docker chứa một hệ điều hành, trong hệ điều hành ấy lại chứa máy ảo, trong máy ảo đó lại chạy Docker. Túm lại: mình muốn hình dung búp bê Nga (tức búp bê Matryoshka) đang tung hoành trong thế giới máy tính như thế nào :smiley:

2 Likes

As you wish :wink:

See also:

4 Likes

Nói thẳng thì công nghệ container này không mới, và Docker cũng không phải là container đầu tiên. Vụ chia một hệ điều hành thành các container đã có từ lâu rồi, trước đây quản lý container chủ yếu là của bên sysadmin, dba admin, hay IT supporter.

Điểm khác của Docker so với công nghệ container cũ ở 2 khoản:

  • Sử dụng cùng một container khi triển khai trên một máy và nhiều máy. Container cũ chỉ hoạt động trên một máy chủ cụ thể.
  • Thống nhất một API chung trên các hệ điều hành khác nhau, một API khi dùng một máy hay nhiều máy. Trong khi container cũ thì API phụ thuộc vào Hệ điều hành cụ thể, có khi là phụ thuộc vào từng version.

Thiệt ra, với khối lượng tính toán càng tăng và nhu cầu lưu trữ càng nhiều thì việc tổng quát hóa công nghệ container là chuyện đương nhiên phải xảy ra thôi. Container không phải là cái gì đó mới hoàn toàn, nó chỉ phát sinh từ nhu cầu thực tiễn.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?