質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2564閲覧

docker swarn クラスタがうまく認識されませんでした

ruuusaamarki

総合スコア468

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/04/11 02:32

前提・実現したいこと

docker swarmを使用してクラスタ構成を組んでみたのですが
うまくいかない状態です。

dockerの仮想環境構築入門という書籍の
チュートリアルになります。(p225〜228)
書籍自体は非常にわかりやすいです。

###環境
macOS 10.14.4(18E226)
Docker for mac Version 2.0.0.3 (31259)
Docker version 18.09.2, build 6247962

発生している問題・エラーメッセージ

エラーは特にない状態です。
一度自分で間違ってコマンドを打ってしまい
それが原因なのかもと気になっております。

miss.sh

1$docker-machine create --swarm --swarm-master\ #★←ここでスペースが入っていなくてオプションが繋がってエラーになってしまった。 2> --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \ 3> --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \ 4> --engine-opt="cluster-advertise=eth1:2376" \ 5> mhs-demo0 6Incorrect Usage. 7 8Usage: docker-machine create [OPTIONS] [arg...] 9 10Create a machine 11 12Description: 13 Run 'docker-machine create --driver name --help' to include the create flags for that driver in the help text. 14 15Options: 16 17 --driver, -d "virtualbox" Driver to create machine with. [$MACHINE_DRIVER] 18 --engine-env [--engine-env option --engine-env option] Specify environment variables to set in the engine 19 --engine-insecure-registry [--engine-insecure-registry option --engine-insecure-registry option] Specify insecure registries to allow with the created engine 20 --engine-install-url "https://get.docker.com" Custom URL to use for engine installation [$MACHINE_DOCKER_INSTALL_URL] 21 --engine-label [--engine-label option --engine-label option] Specify labels for the created engine 22 --engine-opt [--engine-opt option --engine-opt option] Specify arbitrary flags to include with the created engine in the form flag=value 23 --engine-registry-mirror [--engine-registry-mirror option --engine-registry-mirror option] Specify registry mirrors to use [$ENGINE_REGISTRY_MIRROR] 24 --engine-storage-driver Specify a storage driver to use with the engine 25 --swarm Configure Machine to join a Swarm cluster 26 --swarm-addr addr to advertise for Swarm (default: detect and use the machine IP) 27 --swarm-discovery Discovery service to use with Swarm 28 --swarm-experimental Enable Swarm experimental features 29 --swarm-host "tcp://0.0.0.0:3376" ip/socket to listen on for Swarm master 30 --swarm-image "swarm:latest" Specify Docker image to use for Swarm [$MACHINE_SWARM_IMAGE] 31 --swarm-join-opt [--swarm-join-opt option --swarm-join-opt option] Define arbitrary flags for Swarm join 32 --swarm-master Configure Machine to be a Swarm master 33 --swarm-opt [--swarm-opt option --swarm-opt option] Define arbitrary flags for Swarm master 34 --swarm-strategy "spread" Define a default scheduling strategy for Swarm 35 --tls-san [--tls-san option --tls-san option] Support extra SANs for TLS certs 36 --virtualbox-boot2docker-url The URL of the boot2docker image. Defaults to the latest available version [$VIRTUALBOX_BOOT2DOCKER_URL] 37 --virtualbox-cpu-count "1" number of CPUs for the machine (-1 to use the number of CPUs available) [$VIRTUALBOX_CPU_COUNT] 38 --virtualbox-disk-size "20000" Size of disk for host in MB [$VIRTUALBOX_DISK_SIZE] 39 --virtualbox-host-dns-resolver Use the host DNS resolver [$VIRTUALBOX_HOST_DNS_RESOLVER] 40 --virtualbox-hostonly-cidr "192.168.99.1/24" Specify the Host Only CIDR [$VIRTUALBOX_HOSTONLY_CIDR] 41 --virtualbox-hostonly-nicpromisc "deny" Specify the Host Only Network Adapter Promiscuous Mode [$VIRTUALBOX_HOSTONLY_NIC_PROMISC] 42 --virtualbox-hostonly-nictype "82540EM" Specify the Host Only Network Adapter Type [$VIRTUALBOX_HOSTONLY_NIC_TYPE] 43 --virtualbox-hostonly-no-dhcp Disable the Host Only DHCP Server [$VIRTUALBOX_HOSTONLY_NO_DHCP] 44 --virtualbox-import-boot2docker-vm The name of a Boot2Docker VM to import [$VIRTUALBOX_BOOT2DOCKER_IMPORT_VM] 45 --virtualbox-memory "1024" Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE] 46 --virtualbox-nat-nictype "82540EM" Specify the Network Adapter Type [$VIRTUALBOX_NAT_NICTYPE] 47 --virtualbox-no-dns-proxy Disable proxying all DNS requests to the host [$VIRTUALBOX_NO_DNS_PROXY] 48 --virtualbox-no-share Disable the mount of your home directory [$VIRTUALBOX_NO_SHARE] 49 --virtualbox-no-vtx-check Disable checking for the availability of hardware virtualization before the vm is started [$VIRTUALBOX_NO_VTX_CHECK] 50 --virtualbox-share-folder Mount the specified directory instead of the default home location. Format: dir:name [$VIRTUALBOX_SHARE_FOLDER] 51 --virtualbox-ui-type "headless" Specify the UI Type: (gui|sdl|headless|separate) [$VIRTUALBOX_UI_TYPE] 52flag provided but not defined: -swarm-master--swarm-discovery

実行したコマンド履歴

command.sh

1 2$ docker-machine create mh-keystore 3$ eval $(docker-machine env mh-keystore) 4$ docker run -d --name consul -h consul -p 8500:8500 consul agent -server -bootstrap -client 0.0.0.0 5$ docker-machine create --swarm --swarm-master--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-advertise=eth1:2376" mhs-demo0 6$ docker-machine create --swarm --swarm-master --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-advertise=eth1:2376" mhs-demo0 7$ docker-machine create --swarm --swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" --engine-opt="cluster-advertise=eth1:2376" mhs-demo1 8$ eval $(docker-machine env --swarm mhs-demo0) 9$ docker-machine ls 10NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS 11host-nw-vm - virtualbox Stopped Unknown 12mh-keystore - virtualbox Running tcp://192.168.99.100:2376 v18.09.4 13mhs-demo0 * (swarm) virtualbox Running tcp://192.168.99.101:2376 mhs-demo0 (master) v18.09.4 14mhs-demo1 - virtualbox Running tcp://192.168.99.102:2376 mhs-demo0 v18.09.4 15$ docker info 16 17Containers: 0 18 Running: 0 19 Paused: 0 20 Stopped: 0 21Images: 0 22Server Version: swarm/1.2.9 23Role: primary 24Strategy: spread 25Filters: health, port, containerslots, dependency, affinity, constraint, whitelist 26Nodes: 0 27Plugins: 28 Volume: 29 Network: 30 Log: 31Swarm: 32 NodeID: 33 Is Manager: false 34 Node Address: 35Kernel Version: 4.14.111-boot2docker 36Operating System: linux 37Architecture: amd64 38CPUs: 0 39Total Memory: 0B 40Name: 3015b117afd4 41Docker Root Dir: 42Debug Mode (client): false 43Debug Mode (server): false 44Experimental: false 45Live Restore Enabled: false 46 47WARNING: No kernel memory limit support 48

### 調査したこと

WARNING: No kernel memory limit support
というエラーメッセージで検索したところ
git-hubのissueが2件くらいヒットしたのですが
翻訳をかけたところもうバージョンアップにて解決しているというような(解釈が違っているかもしれません)
ことが書かれていました。
https://github.com/docker/for-mac/issues/955
https://github.com/moby/moby/issues/22245

### 質問内容
現状、下手にいじるとこじれそうな予感があり
何を確認したら良いかなど、まずは糸口だけでもご教授いただけましたら幸いです。

情報が足りてない場合、わかりにくい部分などはお手数ですが
ご指摘をお願いいたします。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2019/04/11 02:47

見た感じ、うまく行っているような気がするのですが、「何をしてみてうまくいかない」のかを教えてください。
ruuusaamarki

2019/04/11 02:53

コメントありがとうございます。 参考書籍では実行結果が以下のようになります。 $ docker info Containers: 3 Running: 3 Paused: 0 Stopped: 0 Images: 2 Server Version: swarm/1.2.9 Role: primary Strategy: spread Filters: health, port, containerslots, dependency, affinity, constraint, whitelist Nodes: 2 しかし現在は Containers: 0 Running: 0 Nodes: 0 となってしまっている状態です。
yoorwm

2019/04/11 03:09

それは書籍の方が間違えているか、その状態の前に何か実行したコマンドがあるのではないでしょうか? https://knowledge.sakura.ad.jp/5197/ swarmモードは使った事が無いので適当に検索してみたページだと、中辺りに 「この時点ではコンテナを実行させるためのノードを登録していないため、「Nodes」は0になっているはずだ。」 とありますね? まだ、そこに書いてある状態と同じではないでしょうか?
ruuusaamarki

2019/04/11 03:52

情報ありがとうございます。 参考ページのコマンドを実行してみたところ $docker -H tcp://192.168.99.101:2376 info Containers: 2 Running: 2 という表示がされました。 おっしゃる通り何か実行してしまったのかもしれません。
guest

回答1

0

ベストアンサー

入力されているコマンドそのものは、画面上なんら問題ないように見えます。実際、私のDocker for Macの環境上でもコマンドを実行しましたが、特にエラーはありませんでした(VirtualBoxは入れていないため、その警告は出ました)。

さて、実行できない原因ですが、画面上に2つのエラーらしき表示が出ています。

Incorrect Usage.
flag provided but not defined: -swarm-master--swarm-discovery
この2つです。

表示されているメッセージから、入力されている構文が違っていそうです。-swarm-master--swarm-discoveryというオプションが指定されていたものの、該当するオプションは存在せず、エラーになっているように見えます。

もう一度、コマンドを確実に実行されなおしてみてはいかがでしょう。

投稿2019/04/26 13:51

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuusaamarki

2019/04/29 05:51

ご回答ありがとうございます! ご指摘いただいたオプションを調査してみます。 もう一度マシーンから立て直した方が良さそうなので 今度は確実に実行するようにやってみます。 また質問が出ましたら改めて建てさせていただきます。 ありがとうございました!
ruuusaamarki

2019/05/26 23:20

一度全てのマシーンを削除して作成し直したら想定通りの動きになりました! ご指摘の通り構文の間違いなどで予期せぬ動きになってしまったのかもしれません。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問