2014-04-25 13 views
6

Tôi biết đây là một câu hỏi dài một chút nhưng mọi trợ giúp sẽ được đánh giá cao.Bộ phối hợp Docker

Phiên bản ngắn chỉ đơn giản là tôi muốn có một bộ các thùng chứa giao tiếp với nhau trên nhiều máy chủ và có thể truy cập được bằng SSH. Tôi biết có những công cụ cho việc này nhưng tôi không thể làm được.

Phiên bản dài là:

Có một phần mềm có nhiều thành phần và các thành phần này có thể được cài đặt trong bất kỳ số lượng máy. Có một máy khách và một phía máy chủ cho phần mềm này. Cả hai máy khách-máy chủ và các thành phần phía máy chủ giao tiếp thông qua cổng UDP. Máy chủ sử dụng CentOS, ứng dụng khách sử dụng Microsoft Windows.

Tôi muốn tạo môi trường thử nghiệm bao gồm 4 vùng chứa và các thành phần này sẽ được trải rộng trên các vùng chứa này và máy khách phía. Máy chủ lưu trữ docker là Ubuntu, các thùng chứa là CentOS. Nếu tôi cài đặt tất cả các thành phần trong một thùng chứa, nó sẽ hoạt động, nếu có nhiều hơn thì không. Theo các bản ghi của nó làm việc nhưng nó không.

Tôi đọc rằng bạn cần phải liên kết các thùng chứa hoặc sử dụng một dàn nhạc như Maestro để làm điều này, nhưng tôi đã không thể làm điều đó cho đến nay.

Điều tôi muốn là có thể bắt đầu bộ nếu các vùng chứa liên lạc với nhau, trên một hoặc nhiều máy chủ. Tôi muốn để có thể truy cập vào các thùng chứa với ssh để dịch vụ sẽ bắt đầu tự động. Ngoài ra nó sẽ là tuyệt vời để sử dụng ddns cho các container bởi vì các tên sẽ được sử dụng một lần nữa và một lần nữa nhưng địa chỉ IP có thể thay đổi, nhưng đây chỉ là anh đào trên đầu trang.

Một số thông số kỹ thuật:

Người dẫn chương trình là một tươi cài đặt của Ubuntu 12.04.4 LTS x86_64 Docker là phiên bản mới nhất. (lxc-docker 0.10.0) Tôi đã sử dụng trình điều khiển gốc. Các thùng chứa một đồng xu đơn giản đơn giản lấy từ chỉ mục docker. Tôi đã cài đặt một số thứ cơ bản trên các thùng chứa: openssh-server, mc, java-jre. Tôi đã thay đổi mạng docker thành mạng có thể được truy cập từ mạng nội bộ. Quy tắc bảng IP đã bị xóa, bởi vì tôi không cần chúng, nhưng cũng đã thử với các quy tắc đó nhưng không có may mắn. Các /etc/default/docker tập tin thay đổi:

DOCKER_OPTS="--iptables=false" 

hoặc với các API tiếp xúc:

DOCKER_OPTS="-H tcp://0.0.0.0:4243 --iptables=false" 

Các cổng rằng việc sử dụng phần mềm là giữa 6000-9000 nhưng tôi đã cố gắng để mở tất cả các cổng. Một ví dụ về lệnh chạy:

docker run -h <hostname> -i -t --privileged --expose 1-65535/udp <image> /bin/bash 

Tôi cũng đã cố gắng với API tiếp xúc:

docker -H :4243 run -h <hostname> -i -t --privileged --expose 1-65535/udp <image> /bin/bash 

Tôi không từ bỏ nhưng tôi sẽ đánh giá cao sự giúp đỡ.

+0

thể trùng lặp của [Làm thế nào để mở rộng container Docker trong sản xuất] (http://stackoverflow.com/questions/18285212/how-to-scale-docker -containers-in-production) –

+2

sẽ không gọi nó là một bản sao nhưng có thể có câu trả lời cho câu hỏi của tôi quá. thanks anyway :) – hekm01

+0

các công cụ đánh giá như: https://github.com/docker/libswarm được đề xuất gần đây bởi http://blog.docker.com/2014/07/continued-community-momentum-around-orchestration/ – kikicarbonell

Trả lời

2

Bạn có thể muốn xem dự án đang phát triển docker swarm. Nó sẽ cho phép bạn xử lý tập hợp các máy thử nghiệm của mình như một cụm mà bạn có thể triển khai các thùng chứa.

0

Bạn có thể chỉ cần sử dụng fig để phối hợp và liên kết các bộ chứa với nhau thay vì làm tất cả những điều đó và chuyển tiếp cổng. Cú pháp fig.yml khá đơn giản.

Các vấn đề liên quan