Cùng với việc các công ty ngày càng trở nên tham vọng hơn với các dự án của mình, việc tìm kiếm các phương pháp làm cho các quy trình nhanh hơn và trơn tru hơn là một điều tự nhiên. Các công ty chọn các công cụ khác nhau để hỗ trợ họ trong công việc. Đổi lại, điều này dẫn đến việc họ cố gắng thuê những người đã biết sử dụng các công cụ này (hoặc ít nhất đã làm quen với nó). Một trong những công cụ phổ biến hơn cả là Docker và trong Hướng dẫn Docker: Các câu hỏi phỏng vấn Docker thường gặp, chúng tôi sẽ thảo luận về yêu cầu bạn có thể gặp khi kiếm việc làm một nhà phát triển ở một trong những công ty này.
Chúng ta sẽ xem xét cả các câu hỏi và câu trả lời phỏng vấn Docker cơ bản và nâng cao. Tôi sẽ cho bạn biết nhà tuyển dụng mong đợi gì và tại sao họ có xu hướng hỏi một số câu hỏi nhất định hơn những câu khác. Đến cuối hướng dẫn Docker này, bạn sẽ có ý niệm về cuộc phỏng vấn liên quan đến Docker như thế nào.
Chúng ta sẽ xem xét cả các câu hỏi và câu trả lời phỏng vấn Docker cơ bản và nâng cao. Tôi sẽ cho bạn biết nhà tuyển dụng mong đợi gì và tại sao họ có xu hướng hỏi một số câu hỏi nhất định hơn những câu khác. Đến cuối hướng dẫn Docker này, bạn sẽ có ý niệm về cuộc phỏng vấn liên quan đến Docker như thế nào.
Mục lục
- 1. Câu hỏi phỏng vấn Docker – Cơ bản
- 1.1. Câu hỏi 1: Docker là gì?
- 1.2. Câu hỏi 2: ‘Containers’ là gì?
- 1.3. Câu hỏi 3: Docker ‘images’ là gì?
- 1.4. Câu hỏi 4: Docker đã đưa ra công nghệ ‘container’ đúng không?
- 1.5. Câu hỏi 5: Một Dockerfile là gì?
- 1.6. Câu hỏi 6: ‘Công nghệ container’ có đáng tin cậy không?
- 1.7. Câu hỏi 7: Ba bộ phận chính của Docker là gì?
- 1.8. Câu hỏi 8: Bạn có bị mất hết các dữ liệu công việc nếu chẳng may thoát khỏi một container không?
- 1.9. Câu hỏi 9: Bạn có thể sử dụng các tệp khác để khởi tạo thay vì YAML mặc định không?
- 1.10. Câu hỏi 10: ‘NameSpaces’ được sử dụng làm gì?
- 2. Câu hỏi phỏng vấn Docker – Nâng cao
- 2.1. Câu hỏi 1: Yêu cầu nào quan trọng nhất trong việc xây dựng Docker container?
- 2.2. Câu hỏi 2: Cách Docker quản lý các ‘Dockerized nodes’ như thế nào?
- 2.3. Câu hỏi 3: Các yếu tố chính qui định số lượng container có thể chạy là gì?
- 2.4. Câu hỏi 4: Docker khác với Hypervisor như thế nào?
- 2.5. Câu hỏi 5: Đâu là nơi tốt nhất tìm các ví dụ hay về ‘compose files’?
- 3. Kết luận
Câu hỏi phỏng vấn Docker – Cơ bản
Như đã đề cập, chúng ta sẽ bắt đầu hướng dẫn Docker với một số câu hỏi phỏng vấn cấp độ cơ bản hơn liên quan đến Docker cơ bản. Khi bạn thấy tự tin với các câu hỏi ở mục này, chúng ta sẽ tìm hiểu tiếp các câu hỏi phỏng vấn nâng cao trong hướng dẫn Docker này.
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Câu hỏi 1: Docker là gì?
Bạn có thể đã đoán được câu hỏi này, và đây là câu hỏi kiểm tra việc tìm hiểu Docker của bạn như thế nào. Có lẽ đây cũng là câu dễ bị hỏi nhất trong cuộc phỏng vấn!
Có một vài lý do nhà tuyển dụng hỏi câu hỏi này. Đầu tiên và quan trọng nhất, họ muốn kiểm tra xem bạn có thực sự biết Docker là gì hay không, bạn tìm hiểu về Docker đến đâu hay bạn chỉ là một người ngẫu nhiên dạo chơi với cuộc phỏng vấn. Thứ hai, nhà tuyển dụng muốn kiểm tra xem bạn có thể định nghĩa các khái niệm khó như thế nào - nói cách khác, liệu bạn có thể giải thích đơn giản Docker là gì không.
Đôi khi những loại câu hỏi phỏng vấn Docker này nhằm mục đích khiến bạn mất cân bằng. Nhiều người dành hàng trăm giờ để thực hành, nghiên cứu và sửa đổi các khía cạnh khác nhau của Docker mà không hề nghĩ đến định nghĩa thực sự của chương trình.
Vậy, Docker là gì?
Docker là một công cụ được thiết kế để giúp các nhà phát triển tạo và duy trì các ứng dụng của họ một cách dễ dàng và có tổ chức. Cách mà chương trình này đạt được là sử dụng cái được gọi là container. Nhà phát triển chỉ cần thêm ứng dụng của mình (và tất cả các dữ liệu cần thiết khác) vào container và vận chuyển đến đích. Hãy tưởng tượng một chiếc thuyền chuyên chở những chiếc hộp khổng lồ với các sản phẩm bên trong - thì chính xác đó là hình ảnh trực quan nhất của Docker.
Tất cả điều này được thực hiện mà không cần hệ điều hành bổ sung - Docker sử dụng nhân Linux để giao tiếp ứng dụng được đóng gói từ nhà phát triển đến đích. Đó là lý do tại sao nó rất phổ biến với các công ty sử dụng triết lý DevOps. Vậy trước khi đi phỏng vấn, chí ít bạn cũng nên dành chút thời gian tìm hiểu về Docker nhé.
Câu hỏi 2: ‘Containers’ là gì?
Đây là một trong những câu hỏi phỏng vấn Docker quan trọng nhất. Vì container là một khía cạnh quan trọng của Docker, bạn sẽ bị hỏi về chúng (thậm chí rất nhiều!).
Docker container là các công cụ mà Docker sử dụng để đóng gói và vận chuyển các ứng dụng của nhà phát triển đến địa điểm đích. Các container này là một tính năng Docker được đánh giá cao bởi vì chúng có thể chạy trên bất kỳ loại máy nào - nói cách khác, chúng không phải là độc quyền của OS. Tính phổ biến mà các container này cung cấp trở thành một công cụ có giá trị cho các nhà phát triển và lập trình viên.
Câu hỏi 3: Docker ‘images’ là gì?
Quan trọng tương tự, hình ảnh image được sử dụng để tạo container trong Docker. Việc này được thực hiện bằng cách ban hành lệnh chạy ‘run’.
Câu hỏi 4: Docker đã đưa ra công nghệ ‘container’ đúng không?
Không. Docker là một dự án một nửa là mới - nhiều công cụ phát triển khác cũng cung cấp các container giống như Docker. Thường sẽ có câu hỏi tiếp theo đó sau câu hỏi này. Bạn có lẽ đã đoán được.
Vậy Docker tốt hơn các công cụ khác sử dụng container như thế nào?
Câu trả lời khá đơn giản. Docker sử dụng đám mây để chạy các hoạt động liên quan đến container - điều mà không nhiều công cụ phát triển khác sử dụng. Sử dụng đám mây, Docker trở nên linh hoạt và dễ thích nghi hơn với các tình huống khác nhau có thể xảy ra trong quá trình phát triển hoặc vận chuyển. Đây là tính năng chính giải thích lý do tại sao Docker đang được xem xét khá nhiều, đặc biệt là khi so sánh với các công cụ phát triển dựa trên container khác.
Câu hỏi 5: Một Dockerfile là gì?
Một ví dụ tuyệt vời về một số câu hỏi phỏng vấn cơ bản hơn trên Docker - và cũng không phải là một câu hỏi khó!
Bạn có nhớ so sánh tôi đã nói giữa Docker và một chiếc tàu sân bay không? Một ai đó cần đưa ra chỉ dẫn cho con tàu những gì cần mang theo, mang đến đâu v.v… đúng không? Dockerfile chính xác là một bộ hướng dẫn. Các nhà phát triển cung cấp cho Docker các hướng dẫn như vậy để chương trình có thể thực hiện công việc một cách chính xác, với các tham số cụ thể.
Câu hỏi 6: ‘Công nghệ container’ có đáng tin cậy không?
Mặc dù câu hỏi này không nhất thiết là một trong những câu hỏi phỏng vấn Docker, nhà tuyển dụng vẫn muốn kiểm tra xem bạn có hiểu biết chung về chủ đề này không. Và câu hỏi về công nghệ container là câu hỏi hay trong trường hợp này.
Liên quan đến độ tin cậy của container, không có cách nào tốt hơn là đi sâu vào ví dụ cụ thể. Các công ty lớn nhất trên thế giới (như Google, Amazon, Intel, v.v.) sử dụng và tin tưởng vào công nghệ container - có lẽ là câu trả lời tốt nhất liệu container có phải là công nghệ đáng tin cậy để sử dụng hay không.
Câu hỏi 7: Ba bộ phận chính của Docker là gì?
Client, Host và Registry.
Client là thành phần phát hành các lệnh “run” và “build” cho Host. Host là nơi tất cả các container và hình ảnh được tạo ra. Sau đó chúng được gửi đến Registry, để thực hiện. Hãy đọc thêm về vấn đề này sau khi đã nghiên cứu hướng dẫn Docker: Các câu hỏi phỏng vấn thường gặp này!
Câu hỏi 8: Bạn có bị mất hết các dữ liệu công việc nếu chẳng may thoát khỏi một container không?
Các câu hỏi phỏng vấn Docker tương tự có thể nhằm mục đích khiến bạn mất cân bằng và nhìn lại kiến thức của mình. Tuy nhiên, đừng nản lòng với câu trả lời của mình!
Không, bạn sẽ không amats bất kỳ thông tin, dữ liệu và thông số nào khác nếu bạn vô tình thoát khỏi Docker container. Cách duy nhất để bị mất tiến trình là đặt lệnh xóa container cụ thể - thoát khỏi container không gây hại cho các tệp thông tin.
Câu hỏi 9: Bạn có thể sử dụng các tệp khác để khởi tạo thay vì YAML mặc định không?
Có, bạn có thể. Sự thật là, phiên bản phổ biến hơn YAML là phiên bản cũ JSON. Sẽ không có xung đột hoặc bất kỳ sự cố không mong muốn nào khác - bạn có thể sử dụng nó mà không gặp vấn đề gì.
Câu hỏi 10: ‘NameSpaces’ được sử dụng làm gì?
NameSpaces cô lập các container Docker khỏi các hoạt động khác hoặc việc bị giả mạo.
Câu hỏi phỏng vấn Docker – Nâng cao
Bạn vừa trải qua các câu hỏi Docker cơ bản trong hướng dẫn Docker này. Chúng ta hãy chuyển sang một số câu hỏi nâng cao hơn trong cuộc phỏng vấn xin việc.
Những câu hỏi này nhằm mục đích kiểm tra mức độ hiểu biết sâu sắc của bạn về chủ đề này. Các câu hỏi mẫu trong hướng dẫn Docker này cung cấp ý tưởng những gì có thể bị hỏi trong cuộc phỏng vấn thực tế - và sẽ có nhiều biến thể khác nhau của các câu hỏi có sẵn, mà tôi không thể bao quát trong hướng dẫn Docker ngắn gọn này.
Nếu bạn đã sử dụng Docker một thời gian rồi thì các câu hỏi phỏng vấn nâng cao sẽ không là vấn đề to tát.
Câu hỏi 1: Yêu cầu nào quan trọng nhất trong việc xây dựng Docker container?
Yêu cầu quan trọng nhất để xây dựng một container với Docker là hình ảnh mặc định (default image). Hình ảnh mặc định này thay đổi tùy theo code bạn sử dụng. Để tìm hiểu (và truy cập) hình ảnh mặc định, bạn nên vào Docker Hub và tìm kiếm tên miền cụ thể mà bạn cần. Sau khi bạn tìm thấy hình ảnh, tất cả những gì tiếp theo là giải quyết phần tài liệu và xong - bạn có thể tạo một Docker container!
Câu hỏi 2: Cách Docker quản lý các ‘Dockerized nodes’ như thế nào?
Đây là câu hỏi phỏng vấn đôi, vì để đưa ra câu trả lời thấu đáo (hoặc bất kỳ câu trả lời hợp lý nào), bạn phải biết “Dockerized nodes” là gì.
Dockerized node có thể là bất kỳ thiết bị nào có Docker được cài đặt và chạy. Tiếp theo khi liên quan đến việc quản lý, câu trả lời khá đơn giản - Docker có thể quản lý cả các nút trong nhà và trên nền tảng đám mây. Vì vậy, cho dù nút tồn tại trong khu vực của máy tính chính đang chạy Docker hay nó có mặt trên đám mây - điều đó không quan trọng. Docker sẽ quản lý nó mà không có vấn đề gì. Bạn nên tìm hiểu kỹ về điều này sau khi đọc xong hướng dẫn Docker này.
Câu hỏi 3: Các yếu tố chính qui định số lượng container có thể chạy là gì?
Không có một con số rõ ràng về số lượng container bạn có thể chạy với Docker. Tuy nhiên, hạn chế xuất hiện khi chúng ta bắt đầu nói về phần cứng.
Hai yếu tố có thể giới hạn số lượng container mà bạn có thể chạy - kích thước của ứng dụng và sức mạnh CPU. Nếu ứng dụng của bạn không phải là khổng lồ và bạn có nguồn cung cấp CPU vô tận, bạn có thể chạy một số lượng lớn Docker container cùng một lúc.
Câu hỏi 4: Docker khác với Hypervisor như thế nào?
Một lần nữa, đây là một trong những câu hỏi phỏng vấn Docker yêu cầu bạn phải có kiến thức sâu rộng hơn về các công cụ phát triển khác ngoài Docker. Trả lời được câu hỏi này bạn đã thể hiện được năng lực trong lĩnh vực phát triển chung, và không chỉ những điều liên quan đến Docker (đó là một điều tốt!).
Tất cả tập trung vào một điều đơn giản - Hypervisor yêu cầu bạn phải có phần cứng mở rộng để hoạt động đúng, trong khi Docker chạy trên hệ điều hành thực tế. Điều này cho phép Docker hoạt động nhanh và thực hiện các nhiệm vụ một cách trôi chảy - thứ mà Hypervisor không có. Tương tự, hướng dẫn Docker này chỉ nêu ra điểm khác biệt chính. Bạn có thể tự tìm hiểu thêm về từng loại.
- Dễ sử dụng
- Cung cấp nội dung chất lượng
- Minh bạch giá cả
- Chứng chỉ miễn phí sau hoàn thành
- Tập trung vào các kỹ năng khoa học dữ liệu
- Thời gian học tập linh hoạt
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Khóa học chất lượng cao (ngay cả khóa miễn phí)
- Đa dạng tính năng
- Chương trình nanodegree
- Phù hợp với doanh nghiệp
- Chứng chỉ hoàn thành trả phí
- Được tạo dựng tốt trong ngành
- Đa dạng các tính năng để lựa chọn
- Các khóa học trình độ đại học
- Các khóa học trình độ đại học
- Phù hợp với doanh nghiệp
- Trả phí cho chứng chỉ hoàn thành
Câu hỏi 5: Đâu là nơi tốt nhất tìm các ví dụ hay về ‘compose files’?
Dù bạn tin hay không, có nhiều ẩn số sau câu hỏi này.
Hầu hết các công ty cao cấp yêu cầu các chuyên gia Docker (hoặc những người muốn trở thành chuyên gia) sử dụng một công cụ cụ thể để quản lý hoạt động nội bộ. Công cụ đó được gọi là GitHub.
Khác với tất cả các chức năng chính mà nó thực hiện, đây là một nơi tuyệt vời để tìm các tệp soạn thảo được đề cập trước đó cho các container Docker. Chúng tôi khuyên bạn nên đề cập GitHub cho câu hỏi này - rất có thể, đó chính xác là những gì nhà tuyển dụng của bạn đang tìm kiếm.
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Kết luận
Chúng ta đã đến phần cuối hướng dẫn Docker: Các câu hỏi phỏng vấn thường gặp! Ít nhất, đến lúc này, bạn đã có một số ý tưởng những câu hỏi có thể được hỏi trong cuộc phỏng vấn rồi đúng không?
Khi đề cập đến câu hỏi Docker cơ bản, hãy coi đó là những gì cơ bản nhất. Đừng quá căng thẳng, cố gắng giải thích câu trả lời với tâm thế thư giãn - dù sao bạn cũng đã tìm hiểu về Docker trước đó rồi đúng không! Đối với các câu hỏi nâng cao, bạn sẽ thấy một mô hình.
Nếu bạn đã từng tham gia một vài cuộc phỏng vấn công việc liên quan đến Docker, bạn có thể nhận thấy hầu hết những người phỏng vấn đều hỏi những câu hỏi rất giống nhau. Chắc chắn, các phiên bản có thể khác nhau, nhưng các câu hỏi dường như na ná nhau ít nhiều. Biết đâu, những câu hỏi trong hướng dẫn Docker này lại được sử dụng trong buổi phỏng vấn nào đó sắp tới của bạn?
Rất nhiều nhà tuyển dụng đang tìm kiếm những người có thể thực hiện các nhiệm vụ tương tự (hoặc ít nhất là tương tự) với Docker. Có thể bạn không thành công với lần phỏng vấn đầu tiên, nhưng đừng bỏ cuộc! Bạn sẽ làm tốt hơn nhiều trong các lần khác!
Tôi hy vọng hướng dẫn Docker này hữu ích cho bạn, và bạn sẽ làm tốt trong cuộc phỏng vấn xin việc của mình!