| 315 | |
| 316 | |
| 317 | = Swarmの設定 |
| 318 | |
| 319 | 詳しくは[[ここ|https://docs.docker.com/swarm/install-manual/]]に書いてある。 |
| 320 | |
| 321 | 最初にクラスタのトークンを作成する。 |
| 322 | |
| 323 | {{{ |
| 324 | # docker pull swarn |
| 325 | # docker run --rm swarm create |
| 326 | a8440712cd4709e5edbf701506189c3c |
| 327 | }}} |
| 328 | |
| 329 | 以下、ノードを起動する際には、上記のトークンを利用するので、メモしておく。 |
| 330 | |
| 331 | == 各ノードの設定 |
| 332 | |
| 333 | /etc/default/dockerに下記の設定を追加しホストの2375ポートを |
| 334 | コンテナにバインドできるようにする。 |
| 335 | {{{ |
| 336 | DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" |
| 337 | }}} |
| 338 | |
| 339 | Swarmエージェントを起動する。ホストIDは、ノードのIP。 |
| 340 | |
| 341 | {{{ |
| 342 | # docker run -d swarm join --addr=<ホストIP>:2375 token://<トークンID> |
| 343 | }}} |
| 344 | |
| 345 | 例えば、次のような感じ。 |
| 346 | |
| 347 | {{{ |
| 348 | # docker run -d swarm join --addr=192.168.100.2:2375 token://a8440712cd4709e5edbf701506189c3c |
| 349 | }}} |
| 350 | |
| 351 | == クラスタマネージャの設定 |
| 352 | |
| 353 | 管理ノードで下記のコマンドを実行し、クラスタマネージャを起動する。 |
| 354 | Dockerホストのどこかのノードでもよい。 |
| 355 | |
| 356 | {{{ |
| 357 | # docker run -d -p 2376:2375 swarm manage token://a8440712cd4709e5edbf701506189c3c |
| 358 | }}} |
| 359 | |
| 360 | == 動作確認 |
| 361 | |
| 362 | 起動できたら下記のコマンドでクラスタの動作を確認できる。 |
| 363 | |
| 364 | {{{ |
| 365 | # docker -H tcp://192.168.100.1:2376 info |
| 366 | Containers: 9 |
| 367 | Images: 4 |
| 368 | Role: primary |
| 369 | Strategy: spread |
| 370 | Filters: health, port, dependency, affinity, constraint |
| 371 | Nodes: 2 |
| 372 | dockerhost1: 192.168.100.1:2375 |
| 373 | └ Status: Healthy |
| 374 | └ Containers: 8 |
| 375 | └ Reserved CPUs: 0 / 1 |
| 376 | └ Reserved Memory: 0 B / 1.018 GiB |
| 377 | └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-28-generic, operatingsystem=Ubuntu 14.04.1 LTS, storagedriver=aufs |
| 378 | dockerhost2: 192.168.100.2:2375 |
| 379 | └ Status: Healthy |
| 380 | └ Containers: 1 |
| 381 | └ Reserved CPUs: 0 / 1 |
| 382 | └ Reserved Memory: 0 B / 1.018 GiB |
| 383 | └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-28-generic, operatingsystem=Ubuntu 14.04.1 LTS, storagedriver=aufs |
| 384 | CPUs: 2 |
| 385 | Total Memory: 2.037 GiB |
| 386 | Name: 49a004525d21 |
| 387 | }}} |
| 388 | |
| 389 | == トラブルシューティング |
| 390 | |
| 391 | VMをコピーしてDockerホストを複数作成すると正しくクラスタに登録できない。 |
| 392 | /etc/docker/key.jsonファイルでDockerは自身のIDを識別するようになっている。 |
| 393 | VMをコピーしてDockerホストを作成した場合、下記のように、キーを削除して |
| 394 | Dockerを再起動する。 |
| 395 | |
| 396 | {{{ |
| 397 | # rm /etc/docker/key.json |
| 398 | # service docker restart |
| 399 | }}} |
| 400 | |