docker v1.다중 호스트 테스트 12의 공개 기능 on 벚꽃구름

2016/20DockerCon16에서 Docker v1.12개의 새로운 기능이 발표되었다.
이번에 우리는 새로운 기능에서 사람들의 주목을 끄는 공개 전시 기능을 시도했다.
프로토타입: Swarm Mode 자습서
====보충
이번에는 실험용이라 안전 면/성능 면은 고려하지 않았다.
실제 테스트 시 매우 주의하세요.
추기는 여기까지다
추기 2
2016년 7월 29일 Docker v1.12.0이 GA로 바뀌었다.
따라서 Docker Machine 옵션--engine-install-url에 지정할 필요가 없습니다.
기타 미세한 변경이 있는 부분은 최신 정보정부 수첩를 참조하십시오.
추기는 여기까지다

공개 기능


이번에 소개한 블로그도 빠른 형식으로 일본어로 번역했다(역시!).
참조: [참고 번역] Docker 1.12: 드디어 공개 전시가 설치되었습니다!

이전과 비교하면 etcd와connsul을 설치할 필요가 없다
swarm 집단의 구축이 수월해졌네요.
금방 해볼게요.

차리다


다음은 Mac 작업입니다.
명령 예시 등은 각자의 환경에 따라 적절하게 교체해 주십시오.

손 옆에 있는 기계에 docker v1.설치 12


이번 Docker Con에 맞춰 Docker for Mac/Windows는 개인 베타에서 공공 베타로 바뀌었다.어려우니까 한번 써보세요.
다음 웹 사이트에서 Docker for Mac/Windows를 다운로드할 수 있습니다.

swarm 집단용 기계 준비


벚꽃의 갓


이번에는 벚꽃 갓에 기계 3대를 만들었다.
docker-machine의 벚꽃 구름용 드라이브여기 기사.를 사용하기 때문에 참고
설치를 진행하십시오.

기계제작+docker 설치


다음 명령으로 벚꽃 구름 위에서 기계를 제작한다.
지정--engine-install-url을 통해 정식 발표 전의 edge 버전의
docker를 설치할 수 있습니다.
기계 제작
# 1台目
$ docker-machine create -d sakuracloud \
    --sakuracloud-access-token=[ACCESS TOKEN] \
    --sakuracloud-access-token-secret=[ACCESS TOKEN SECRET] \
    --engine-install-url="https://experimental.docker.com" \
    sakura01

# 2台目
$ docker-machine create -d sakuracloud \
    --sakuracloud-access-token=[ACCESS TOKEN] \
    --sakuracloud-access-token-secret=[ACCESS TOKEN SECRET] \
    --engine-install-url="https://experimental.docker.com" \
    sakura02

# 3台目
$ docker-machine create -d sakuracloud \
    --sakuracloud-access-token=[ACCESS TOKEN] \
    --sakuracloud-access-token-secret=[ACCESS TOKEN SECRET] \
    --engine-install-url="https://experimental.docker.com" \
    sakura03

클러스터 구축


첫 번째 init


우리 빨리 집단을 하나 구축합시다.
우선 집단의 초기화를 진행한다.초기화는 swarm init 명령입니다.
swarm_init
$ docker swarm init --help

Usage:  docker swarm init [OPTIONS]

Initialize a Swarm

Options:
      --auto-accept value   Auto acceptance policy (worker, manager, or none)
      --force-new-cluster   Force create a new cluster from current state.
      --help                Print usage
      --listen-addr value   Listen address (default 0.0.0.0:2377)
      --secret string       Set secret value needed to accept nodes into cluster
그럼 먼저 첫 번째 기계로 init를 운행합시다.
_swarm_init 실행
# 1台目のマシンに接続
$ eval $(docker-machine env sakura01)

# init実施
$ docker swarm init 
Swarm initialized: current node (bvotc0o2ukxbeud6jedhpyvsq) is now a manager.
내부 네트워크에서 들어야 하는데--listen-addr이번에는 검증용 기본값0.0.0.0:2377 청취를 위한 것이다.
다음 명령을 통해 확인할 수 있습니다.
swarm_init 확인
$ docker node ls
ID                           NAME      MEMBERSHIP  STATUS  AVAILABILITY  MANAGER STATUS
bvotc0o2ukxbeud6jedhpyvsq *  sakura01  Accepted    Ready   Active        Leader

두세 번째


나머지 두 대를 집단에 참가시키자.
참가하려면 옵션으로 첫 번째 IP 주소/포트를 지정합니다.
다음 명령을 사용하여 첫 번째 IP 주소를 확인한 후 참가합니다.
IP 확인
$ docker-machine ip sakura01
join 명령을 사용하여 swarm 그룹에 가입합니다.
swarm_join
$ docker swarm join --help

Usage:  docker swarm join [OPTIONS] HOST:PORT

Join a Swarm as a node and/or manager

Options:
      --ca-hash string      Hash of the Root Certificate Authority certificate used for trusted join
      --help                Print usage
      --listen-addr value   Listen address (default 0.0.0.0:2377)
      --manager             Try joining as a manager.
      --secret string       Secret for node acceptance

당장 실행해.
swarm_실시
# 2台目のマシンへ接続
$ eval $(docker-machine env sakura02)

# join
$ docker swarm join `docker-machine ip sakura01`:2377
This node joined a Swarm as a worker.

# 3台目のマシンへ接続
$ eval $(docker-machine env sakura03)

# join
$ docker swarm join `docker-machine ip sakura01`:2377
This node joined a Swarm as a worker.

# 1台目に接続して確認
$ eval $(docker-machine env sakura01)
$ docker node ls
ID                           NAME      MEMBERSHIP  STATUS  AVAILABILITY  MANAGER STATUS
03qup39ksvhcgvusqk7o9x50h    sakura03  Accepted    Ready   Active        
bvotc0o2ukxbeud6jedhpyvsq *  sakura01  Accepted    Ready   Active        Leader
ccup7i31v4dbzip15ej49wpzm    sakura02  Accepted    Ready   Active        

이렇게 하면 집단을 구축할 수 있다.

그룹에서 docker 용기 시작하기 (서비스 명령)

service 명령을 사용하여 그룹에서 용기를 시작합니다.
서비스 명령
$ docker service --help

Usage:  docker service COMMAND

Manage Docker services

Options:
      --help   Print usage

Commands:
  create      Create a new service
  inspect     Inspect a service
  tasks       List the tasks of a service
  ls          List services
  rm          Remove a service
  scale       Scale one or multiple services
  update      Update a service

Run 'docker service COMMAND --help' for more information on a command.

이번에는 Nginx를 시작합니다.서비스 이름hellosakura으로 지정합니다.
http에 사용할 80번 포트도 지정했습니다.
서비스 실행
$ docker service create --replicas 1 --name hellosakura -p 80:80 nginx:latest
service lsservice tasks [タスク名] 명령을 사용하여 확인합니다.
확인
# サービス起動状況の確認
$ docker service ls
ID            NAME         REPLICAS  IMAGE         COMMAND
2685cua3k8wm  hellosakura  1/1       nginx:latest  

# サービス内の各タスクの起動状況の確認(sakura03で起動しているのが見える)
$ docker service tasks hellosakura
ID                         NAME           SERVICE      IMAGE         LAST STATE          DESIRED STATE  NODE
4zh6ppxmxncfm6guswtoixmho  hellosakura.1  hellosakura  nginx:latest  Running 37 seconds  Running        sakura03

동작 확인


그럼 브라우저 등을 통해 각 기기의 IP에 로그인하세요.
동작 확인
$ open http://`docker-machine ip sakura01`
$ open http://`docker-machine ip sakura02`
$ open http://`docker-machine ip sakura03`
모든 IP 에 Nginx 페이지가 표시되도록 지정하시겠습니까?
Swarm 클러스터(클러스터)의 모든 IP에서 공개 포트에 액세스 가능
Overlay 네트워크에서 대상 서비스 포트에 도달할 수 있습니다.

잉여


오늘은 여기까지.
기타
  • 확대/축소
  • 집단 내 용기의 스크롤 업데이트
  • 노드 제거 시 재배치
  • 등 재미있는 기능이 많다.
    반드시 강좌를 실시해 주십시오.
    그게 다야.

    좋은 웹페이지 즐겨찾기