Chạy container bên trong một máy ảo?


15

Theo hiểu biết của tôi, các container nhẹ hơn nhiều so với VM vì chúng không ảo hóa phần cứng mà thay vào đó chỉ cách ly phần mềm chạy trong chúng khỏi phần mềm chạy trong các container khác trên hệ thống.

Tình huống của tôi là tôi không đủ khả năng để mua thêm máy chủ và các máy chủ tôi có đều đang chạy siêu giám sát. Tôi cần cung cấp ít nhất 6 "máy chủ" để lưu trữ các phiên bản của ứng dụng web tương đối nhỏ (mỗi phiên bản dành cho một khách hàng khác nhau). Sẽ thật lãng phí khi cung cấp một VM mới cho mỗi máy chủ này, vì vậy tôi dự định thiết lập 2 VM và thực hiện một trong các thao tác sau:

  1. Chạy nhiều phiên bản của ứng dụng trên mỗi VM bằng cách sử dụng máy chủ ảo (apache). hoặc là
  2. Thiết lập các thùng chứa trên máy ảo cho phép tôi cách ly môi trường.

Xem xét điều này, có một chi phí không đáng kể liên quan đến các hệ thống container sẽ khiến việc sử dụng chúng trong VM trở thành một ý tưởng tồi hay có lý do kỹ thuật nào khác khiến tôi không muốn sử dụng các container không?

Câu trả lời:


13

Docker RẤT nhẹ so với VM và hệ thống VM chỉ hoạt động tốt với các container đang chạy. Mỗi container về cơ bản hoạt động như một hệ thống riêng biệt, vì vậy rất tốt cho việc cách ly khỏi quan điểm ổn định hệ thống. Dựa trên mô tả của bạn, có vẻ như trường hợp sử dụng lý tưởng cho Docker. Nếu bạn thử nghiệm với Docker, hãy đảm bảo bạn sử dụng phiên bản mới nhất có thể, một số phiên bản cũ hơn có một số lỗ hổng khá khó chịu trong đó. Có một số cân nhắc về bảo mật khi chạy Docker.

SELinux - SELinux nhận biết được vùng chứa và sẽ tự động tạo nhãn MCS được đặt tên ngẫu nhiên cho mỗi vùng chứa. Điều này giúp đảm bảo sự cô lập vì các thùng chứa LXC không được coi là thực sự "chứa", mặc dù điều này đang được cải thiện.

Chỉ thị của USER - Trong mỗi Dockerfile, nên sử dụng chỉ thị USER và sử dụng như một tài khoản khác ngoài root, mặc định. Cái bắt ở đây là người dùng phải tồn tại trên hệ thống. Nó cũng có thể gây phiền toái cho các tập tin và thư mục chmodding cho người dùng mới này, nhưng nó giúp giảm rủi ro của bạn. Tôi thường khuyên bạn nên tạo một "bộ chứa" hoặc một cái gì đó tương tự trên các hệ thống của mình để giúp đảm bảo rằng một người dùng chung có sẵn trên tất cả các hệ thống không trùng lặp với bất kỳ phần nào khác của hệ thống.

Mặt khác, phần khó nhất là quản lý các container và cập nhật chúng khi cần thiết.


3

có một chi phí không đáng kể liên quan đến các hệ thống container sẽ khiến việc sử dụng chúng trong VM trở thành một ý tưởng tồi

Liệu Docker Container Hiệu suất trong VMware vSphere giúp bạn?

hoặc có bất kỳ lý do kỹ thuật nào khác tại sao tôi không muốn sử dụng container?

Tôi không biết về Docker nói chung vì tôi chưa làm việc với nó. Tôi nghĩ rằng phần mềm quản lý vẫn thiếu sự trưởng thành so với phần mềm quản lý VM ... nhưng tôi là quản trị viên vSphere và do đó có lẽ sai lệch.

Xem xét Docker trên máy ảo, CoreOS hiện được hỗ trợ chính thức trên vSphere 5.5 . Vì vậy, ít nhất VMware nghĩ rằng Docker / container trên VM là OK.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.