2016-06-07 8 views
0

여러 호스트 (예 : 3 개의 호스트에 각각 50 개의 컨테이너)에 엄청난 수의 Docker 컨테이너를 만들어야합니다. 이 컨테이너는 모두 이미지, 구성 등이 동일하며 각 컨테이너의 네트워크 주소와 ID 만 달라야합니다 (기본적으로 거대한 가상 컨테이너 네트워크를 만들고 싶습니다). 이 방법이 있습니까?여러 개의 도커 컨테이너 만들기

필자는 Helios 및 Kubernetes와 같은 기술을 살펴 보았지만 각 에이전트에 하나의 컨테이너 만 배포하는 것으로 보입니다. 나는 Helios에서 많은 다른 일자리를 창출하고 그 중 하나를 그 요원에게 배치하는 것에 대해 생각했지만 그것은 나에게 조금 더러운 것처럼 보입니다.

+1

https://docs.docker.com/swarm/ – johnharris85

답변

1

Docker 전용 솔루션의 경우 Swarm 및 Compose를 사용할 수 있습니다.

3 개의 노드로 구성된 Docker Swarm 클러스터를 만들고 환경을 Swarm으로 변경하십시오. (아래는 각 호스트가 개인 네트워크에 대한 확인이며 2375에 듣고 있지만, 당신은 TLS 설정을 원하는 더 많은 보안을 위해 2376로 전환 할 수 있습니다 가정합니다.)

cat >cluster.txt <<EOF 
node1:2375 
node2:2375 
node3:2375 
EOF 
docker run -d -P --restart=always --name swarm-manager \ 
    -v ./cluster.txt:/cluster.txt \ 
    swarm manage file:///cluster.txt 
export DOCKER_HOST=$(docker port swarm-manager 2375) 

는 고정 표시기의 내부에서 서비스를 정의 -compose.yml을 입력 한 다음 docker-compose scale my-service=150을 실행하십시오. Swarm이 기본 확산 전략으로 설정되어있는 경우, 각 호스트에서 실행중인 (또는 중지 된) 컨테이너 수에 따라 3 개의 호스트에 분산됩니다. 당신이 그것을 다시 실행 때까지 중단에 대한 정확하지 않는 것을 존재에서의 단점 다른 도구를 통해 고정 표시기가-구성하는 것을

cat >docker-compose.yml <<EOF 
my-app: 
    image: my-app 
EOF 
docker-compose scale my-app=150 

참고.

2

이것은 Kubernetes가 적합한 유즈 케이스의 유형입니다.

Replica Set을 사용해야합니다. 복제본 세트를 만들 때 원하는 복제본 수와 함께 각 컨테이너 인스턴스를 만드는 방법을 시스템에 알려주는 템플릿을 지정합니다. 그런 다음 클러스터의 사용 가능한 노드 수에 해당 수의 복제본을 만듭니다.

기본적으로 Kubernetes는 ~ 100 포드/노드 만 허용하지만 더 필요한 경우 커맨드 라인 플래그로이 번호를 변경할 수 있습니다.

+0

Kubernetes 1.2는 기본적으로 ~ 100 포드/노드를 허용하며 플래그를 변경하지 않고도 충분할 수 있습니다. –

+0

감사합니다. 내 대답을 업데이트했습니다. –