| | 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 | |