Tutum을 사용하여 Amazon에 Docker 배포하기 에 도커 이미지를 배포하는 방법을 설명했습니다. 도커 투툼. Tutum은 지금 도커 클라우드.
읽기 Docker Cloud 소개 에서 자세한 내용을 확인하세요.

Docker Cloud의 주요 기능은 다음과 같습니다:
- Docker ID를 사용한 인증
- Docker Hub와 통합
- 지원 대상 Docker 공식 리포지토리
- 상업적으로 지원되는 Docker 엔진
- GUI, API 및 CLI를 사용하여 애플리케이션을 배포하고 확장하는 기능
이 블로그에서 확인할 수 있습니다:
- Docker Cloud의 주요 개념
- 새 Docker Cloud 노드를 만드는 방법
- Docker Cloud CLI 설치 방법
- 새 Docker 클라우드 서비스를 만드는 방법
- Docker Cloud에서 Couchbase Server 액세스
- Docker 클라우드 서비스 및 노드를 종료하는 방법
마지막으로 Docker Cloud 문서에 대한 몇 가지 참조를 남깁니다.
블로그는 다음을 사용합니다. 카우치베이스 서버 - 확장성이 뛰어난 오픈 소스, Docker 이미지용 JSON 문서 데이터베이스입니다.
도커 클라우드 TL;DR
다음은 Amazon에서 Docker Cloud를 사용하여 Docker 이미지를 실행하는 빠른 명령어입니다:
|
1 2 3 4 5 |
brew install docker-cloud docker-cloud nodecluster create -t 1 --tag couchbase couchbase-node aws us-west-1 m3.large docker-cloud service create --tag couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase docker-cloud service start {SERVICE_ID} docker-cloud service inspect {SERVICE_ID} | jq ".container_ports[0].endpoint_uri" | sed 's/tcp/http/g' |
자세한 내용은 아래에서 확인하세요.
Docker Cloud의 주요 개념
Docker Cloud의 핵심 개념을 이해해 보겠습니다:
- 노드는 애플리케이션을 배포하고 실행하는 데 사용되는 개별 Linux 호스트/VM입니다. 새 노드를 프로비저닝하여 용량을 늘릴 수 있습니다. Docker Cloud는 호스팅 서비스를 제공하지 않습니다. 노드는 물리적 서버, 가상 머신 또는 클라우드 공급자를 사용하여 프로비저닝됩니다.
- 노드 클러스터는 동일한 유형의 노드로 구성된 논리적 그룹입니다. 노드 클러스터를 사용하면 더 많은 노드를 프로비저닝하여 인프라를 쉽게 확장할 수 있습니다.
- 서비스는 동일한 이미지의 논리적 컨테이너 그룹입니다. 서비스를 사용하면 여러 노드에서 애플리케이션을 간편하게 확장할 수 있습니다.
Docker Cloud는 다음을 사용하여 관리할 수 있습니다. 웹, CLI 또는 REST API. 이 블로그에서는 모든 명령을 수행하기 위해 Docker Cloud CLI를 사용합니다.
Docker Cloud CLI 설치
Docker Cloud CLI를 설치합니다:
|
1 2 3 4 5 |
brew install docker-cloud ==> Downloading https://homebrew.bintray.com/bottles/docker-cloud-1.0.2.yosemite.bottle.tar.gz Already downloaded: /Library/Caches/Homebrew/docker-cloud-1.0.2.yosemite.bottle.tar.gz ==> Pouring docker-cloud-1.0.2.yosemite.bottle.tar.gz ? /usr/local/Cellar/docker-cloud/1.0.2: 482 files, 4.1M |
전체 설치 지침은 다음 링크에서 확인할 수 있습니다. CLI 설치. 버전 확인:
|
1 2 |
docker-cloud -v docker-cloud 1.0.2 |
전체 명령 집합은 다음과 같습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
usage: docker-cloud [-h] [-v] {action,container,event,exec,login,node,nodecluster,repository,run,service,stack,tag,trigger,up} ... Docker Cloud CLI optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit Docker Cloud CLI commands: {action,container,event,exec,login,node,nodecluster,repository,run,service,stack,tag,trigger,up} action Action-related operations container Container-related operations event Get real time Docker Cloud events exec Run a command in a running container login Please use "docker login" to log into Docker Cloud node Node-related operations nodecluster NodeCluster-related operations repository Repository-related operations run Create and run a new service service Service-related operations stack Stack-related operations tag Tag-related operations trigger Trigger-related operations up Create and deploy a stack |
로그인 자격 증명을 저장합니다:
|
1 2 3 4 5 6 |
docker login Username: arungupta Password: Email: arun.gupta@gmail.com WARNING: login credentials saved in /Users/arungupta/.docker/config.json Login Succeeded |
새 Docker 클라우드 노드 만들기
클라우드 제공업체 자격 증명을 다음 주소로 등록하세요. Docker Cloud 웹 UI 에 설명된 대로 클라우드 서비스 제공업체 링크. Amazon, Digital Ocean, Azure 및 기타 클라우드 공급자가 지원됩니다..
단일 노드로 새 노드 클러스터를 만듭니다:
|
1 2 |
docker-cloud nodecluster create -t 1 --tag couchbase couchbase-node aws us-west-1 m3.large 42a34e04-02e1-47be-bf87-ec06e0e0b604 |
이 노드 클러스터에는 단일 노드(-t 1) 및 "couchbase" 태그(--태그 카우치베이스). 마지막 네 개의 파라미터는 노드 클러스터 이름(카우치베이스 노드공급자 (aws지역 (us-west-1 및 노드 유형(m3.large).
이 노드 클러스터의 각 노드에는 할당된 태그가 부여됩니다. 이 태그는 나중에 특정 노드 또는 노드 클러스터에 서비스를 할당하는 데 사용됩니다.
이 노드 클러스터의 상태를 확인할 수 있습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
docker-cloud nodecluster inspect 42a34e04-02e1-47be-bf87-ec06e0e0b604 | jq { "disk": 60, "uuid": "42a34e04-02e1-47be-bf87-ec06e0e0b604", "tags": [ { "name": "couchbase" } ], "current_num_nodes": 1, "region": "/api/infra/v1/region/aws/us-west-1/", "target_num_nodes": 1, "state": "Deployed", "node_type": "/api/infra/v1/nodetype/aws/m3.large/", "resource_uri": "/api/infra/v1/nodecluster/42a34e04-02e1-47be-bf87-ec06e0e0b604/", "destroyed_datetime": null, "provider_options": {}, "nodes": [ "/api/infra/v1/node/5c4c78e0-71c9-4420-9a1d-fdb04a35d1de/" ], "deployed_datetime": "Tue, 15 Mar 2016 17:18:17 +0000", "nickname": "couchbase-node", "dockercloud_action_uri": "", "name": "couchbase-node" } |
의 대시보드에서 cloud.docker.com 가 표시되도록 업데이트됩니다: 
새 Docker 클라우드 서비스 만들기
Docker 클라우드 서비스를 만듭니다:
|
1 2 |
docker-cloud service create --tag couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase 936dbe58-7c7c-4289-837a-15d29128e5ea |
여러 노드 클러스터가 존재하는 경우 --태그 는 노드 클러스터에 서비스를 할당하는 데 사용됩니다. docker-cli#10 를 -p 8091-8093:8091-8093 형식을 사용하여 여러 포트가 노출될 수 있도록 제출합니다. 이는 docker CLI와 정렬됩니다.
여기에 사용된 도커 이미지는 아룽업타/카우치베이스. 이 이미지는 공식 카우치베이스 이미지 도커 허브 그리고 다양한 서비스에 맞게 사전 구성.
Docker 클라우드 서비스를 시작합니다:
|
1 2 |
docker-cloud service start 834343fd-b1d5-4d66-a2cd-69d27a471658 834343fd-b1d5-4d66-a2cd-69d27a471658 |
업데이트된 대시보드의 모습은 다음과 같습니다:
Docker 클라우드 서비스 로그를 가져옵니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
docker-cloud service logs 834343fd-b1d5-4d66-a2cd-69d27a471658 couchbase-d96eed5d-1 | 2016-03-14T22:54:04.826000846Z Starting Couchbase Server -- Web UI available at https://:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.832855273Z * Trying 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.833816400Z % Total % Received % Xferd Average Speed Time Time Time Current couchbase-d96eed5d-1 | 2016-03-14T22:54:19.834647384Z Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835659864Z > POST /pools/default HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835705633Z > User-Agent: curl/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835764766Z > Host: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835808491Z > Accept: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835849972Z > Content-Length: 36 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835890805Z > Content-Type: application/x-www-form-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835951739Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.836153748Z } [36 bytes data] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.836431490Z * upload completely sent off: 36 out of 36 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838702601Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838831946Z < Server: Couchbase Server couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838882039Z < Pragma: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838929456Z < Date: Mon, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838944199Z < Content-Length: 0 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838973658Z < Cache-Control: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838984780Z < 100 36 0 0 100 36 0 5643 --:--:-- --:--:-- --:--:-- 6000 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.839338450Z * Connection #0 to host 127.0.0.1 left intact couchbase-d96eed5d-1 | 2016-03-14T22:54:19.843462008Z * Trying 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.844335715Z % Total % Received % Xferd Average Speed Time Time Time Current couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845478686Z Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845676061Z > POST /node/controller/setupServices HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845729619Z > User-Agent: curl/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845805193Z > Host: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845858410Z > Accept: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845911479Z > Content-Length: 26 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845986653Z > Content-Type: application/x-www-form-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846040578Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846312512Z } [26 bytes data] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846561659Z * upload completely sent off: 26 out of 26 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847024846Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847082032Z < Server: Couchbase Server couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847157246Z < Pragma: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847211690Z < Date: Mon, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847266024Z < Content-Length: 0 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847344403Z < Cache-Control: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847411160Z < 100 26 0 0 100 26 0 6056 --:--:-- --:--:-- --:--:-- 8666 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.849284426Z * Connection #0 to host 127.0.0.1 left intact couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853702443Z * Trying 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853890120Z % Total % Received % Xferd Average Speed Time Time Time Current couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853943309Z Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854112174Z > POST /settings/web HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854169870Z > User-Agent: curl/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854223412Z > Host: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854278756Z > Accept: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854335649Z > Content-Length: 50 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854391073Z > Content-Type: application/x-www-form-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854447141Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854683623Z } [50 bytes data] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.855024680Z * upload completely sent off: 50 out of 50 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859378932Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859530830Z < Server: Couchbase Server couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859611527Z < Pragma: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859794083Z < Date: Mon, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859848224Z < Content-Type: application/json couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859912932Z < Content-Length: 39 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859957829Z < Cache-Control: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859972017Z < couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859986584Z { [39 bytes data] 100 89 100 39 100 50 6060 7770 --:--:-- --:--:-- --:--:-- 8333 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860221103Z * Connection #0 to host 127.0.0.1 left intact couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860730000Z {"newBaseUri":"https://127.0.0.1:8091/"}/entrypoint.sh couchbase-server |
로그에는 Couchbase REST API 를 호출하여 Couchbase 서버를 구성합니다.
Docker Cloud에서 Couchbase Server 액세스
노출된 컨테이너 포트가 있는지 Docker Cloud 서비스를 검사합니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
docker-cloud service inspect 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports" [ { "protocol": "tcp", "outer_port": 8091, "inner_port": 8091, "port_name": "unknown", "published": true, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" }, { "protocol": "tcp", "outer_port": 8092, "inner_port": 8092, "port_name": "unknown", "published": true, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8092/" }, { "protocol": "tcp", "outer_port": 8093, "inner_port": 8093, "port_name": "unknown", "published": true, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8093/" }, { "protocol": "tcp", "outer_port": 11210, "inner_port": 11210, "port_name": "unknown", "published": true, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:11210/" } ] |
좀 더 구체적으로 말하자면, 정확한 URI는 카우치베이스 웹 콘솔 로 얻을 수 있습니다:
|
1 2 |
docker-cloud service inspect 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports[0].endpoint_uri" | sed 's/tcp/http/g' "https://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" |
https://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/ 에서 Couchbase 웹 콘솔에 액세스하여 Couchbase 웹 콘솔 로그인 화면을 확인합니다. 다음 비밀번호 자격 증명을 입력합니다. 관리자 그리고 비밀번호. 
그리고 카우치베이스 웹 콘솔 처럼 보입니다:
Docker 클라우드 서비스 및 노드 종료하기
실행 중인 Docker Cloud 서비스 목록을 확인합니다:
|
1 2 3 |
docker-cloud service ps NAME UUID STATUS #CONTAINERS IMAGE DEPLOYED PUBLIC DNS STACK couchbase-b9132b42 936dbe58 ▶ Running 1 arungupta/couchbase:latest 10 minutes ago couchbase-b9132b42.936dbe58.svc.dockerapp.io |
서비스를 종료합니다:
|
1 |
docker-cloud service terminate 936dbe58 |
노드 목록을 확인합니다:
|
1 2 3 |
docker-cloud node ls UUID FQDN LASTSEEN STATUS CLUSTER DOCKER_VER 5c4c78e0 5c4c78e0-71c9-4420-9a1d-fdb04a35d1de.node.dockerapp.io 35 seconds ago ▶ Deployed couchbase-node 1.9.1-cs2 |
로 노드를 종료합니다:
|
1 |
docker-cloud node rm 5c4c78e0 |
Docker 클라우드 참조
이 블로그에서 배웠습니다:
- Docker Cloud의 주요 개념
- 새 Docker Cloud 노드를 만드는 방법
- Docker Cloud CLI 설치 방법
- 새 Docker 클라우드 서비스를 만드는 방법
- Docker Cloud에서 Couchbase Server 액세스
- Docker 클라우드 서비스 및 노드를 종료하는 방법
즐기세요! 출처: https://www.couchbase.com/blog/getting-started-docker-cloud/


