1

これは再現が非常に難しく、非常にイライラします。助けやアドバイスにはとても感謝しています。私はOS Xエルキャピタン(10.11.6)上で動作するMac用Dockerを使用しています。要点は、DockerがDocker GCEドライバ(Dockerの公式ドキュメント参照here)を介してGoogle Compute Engine(GCE)で動作しないようだということです。Docker-machine Google(GCE)ドライバが動作しない、インスタンスを作成できない

1:新しい無料のGCP(Googleクラウド)アカウントをhttp://console.cloud.google.com/に登録してください。 Google Cloud SDKは、https://cloud.google.com/sdk/からダウンロードしてインストールしてください。

2:新しいGoogleクラウドプロジェクトを作成します。

3:Googleクラウドコンソールに「APIマネージャ」に移動し、「資格情報」

4をクリックしてください:「資格情報を作成する」を選択し、「サービスアカウントキー」をクリックします。 「Compute Engineのデフォルトサービスアカウント」を選択し、JSONが出力タイプとして選択されていることを確認して、「作成」をクリックします。出力されたJSONファイルをユーザーのルートディレクトリ(/Users/MYUSERNAME)に移動します。

5:.bash_profile configに次の行を追加します。 export GOOGLE_APPLICATION_CREDENTIALS=/Users/MYUSERNAME/NAME_OF_CREDENTIALS_FILE.json。ファイルを保存します。

6:端末を終了し、新しい変数を開いて、env変数が設定されるようにします。

7:実行gcloud config set project PROJECT_ID(PROJECT_IDはGoogle Cloud Consoleで作成したばかりのプロジェクトの名前です)。

8:gcloud auth loginを実行すると、ブラウザタブが開き、Googleにログインして権限を与えます。 [許可する]をクリックします。

9:今楽しい部分は、次のコマンドを実行すると、ドッカーdocumentation(私は--debugフラグを追加しました)あたり:

docker-machine --debug create --driver google --google-project PROJECT_ID vm01

( 'VM01は' の名前でありますここでは、仮想マシン、これはあなたが望む何でもかまいません)

非常に長い出力の終わりに、私は非常に下部にエラーメッセージが締結し、以下を得る:。

(LOTS OF OTHER OUTPUT BEFORE THIS, NOT ABLE TO COPY-PASTE EVERYTHING DUE TO STACKOVERFLOW 30000 CHAR LIMIT) 

(vm01) Calling .GetURL 
(vm01) Calling .DriverName 
Setting Docker configuration on the remote daemon... 
(vm01) Calling .GetSSHHostname 
(vm01) Calling .GetSSHPort 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHUsername 
Using SSH client type: external 
Using SSH private key: /Users/nathan/.docker/machine/machines/vm01/id_rsa (-rw-------) 
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none [email protected] -o IdentitiesOnly=yes -i /Users/nathan/.docker/machine/machines/vm01/id_rsa -p 22] /usr/bin/ssh <nil>} 
About to run SSH command: 
printf %s "[Service] 
ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google 
MountFlags=slave 
LimitNOFILE=1048576 
LimitNPROC=1048576 
LimitCORE=infinity 
Environment= 

[Install] 
WantedBy=multi-user.target 
" | sudo tee /etc/systemd/system/docker.service 
SSH cmd err, output: <nil>: [Service] 
ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google 
MountFlags=slave 
LimitNOFILE=1048576 
LimitNPROC=1048576 
LimitCORE=infinity 
Environment= 

[Install] 
WantedBy=multi-user.target 

(vm01) Calling .GetSSHHostname 
(vm01) Calling .GetSSHPort 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHUsername 
Using SSH client type: external 
Using SSH private key: /Users/nathan/.docker/machine/machines/vm01/id_rsa (-rw-------) 
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none [email protected] -o IdentitiesOnly=yes -i /Users/nathan/.docker/machine/machines/vm01/id_rsa -p 22] /usr/bin/ssh <nil>} 
About to run SSH command: 
sudo systemctl daemon-reload 
SSH cmd err, output: <nil>: 
(vm01) Calling .GetSSHHostname 
(vm01) Calling .GetSSHPort 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHUsername 
Using SSH client type: external 
Using SSH private key: /Users/nathan/.docker/machine/machines/vm01/id_rsa (-rw-------) 
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none [email protected] -o IdentitiesOnly=yes -i /Users/nathan/.docker/machine/machines/vm01/id_rsa -p 22] /usr/bin/ssh <nil>} 
About to run SSH command: 
sudo systemctl -f start docker 
SSH cmd err, output: <nil>: 
(vm01) Calling .GetSSHHostname 
(vm01) Calling .GetSSHPort 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHKeyPath 
(vm01) Calling .GetSSHUsername 
Using SSH client type: external 
Using SSH private key: /Users/nathan/.docker/machine/machines/vm01/id_rsa (-rw-------) 
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none [email protected] -o IdentitiesOnly=yes -i /Users/nathan/.docker/machine/machines/vm01/id_rsa -p 22] /usr/bin/ssh <nil>} 
About to run SSH command: 
netstat -tln 
SSH cmd err, output: <nil>: Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State 
tcp  0  0 10.0.3.1:53    0.0.0.0:*    LISTEN 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN 
tcp6  0  0 :::22     :::*     LISTEN 

Error creating machine: Error running provisioning: Unable to verify the Docker daemon is listening: Maximum number of retries (10) exceeded 
notifying bugsnag: [Error creating machine: Error running provisioning: Unable to verify the Docker daemon is listening: Maximum number of retries (10) exceeded] 

答えて

2

これを直ちに解決しました。私はGoogleレジストリ(Ubuntu 16.04 LTS、デフォルトのUbuntu 15との比較ではdocker-machine --driver googleコマンドで使用されています)から更新されたイメージを使用しましたが、正しく動作しているようです。理由は分かりません。完全なコマンドは:

docker-machine --debug create --driver google --google-project PROJECT_ID --google-machine-image https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20161205 vm02

+0

私(OS X、ドッキングウィンドウマシン0.8.2、ドッカ1.12.3)のために、それは と一緒にエラーが発生したものの、私は、新しいイメージを使用してのアイデアが好き'' ' SSHコマンドの実行について: cat/etc/os-release SSH cmdエラー、出力:終了ステータス255: マシンの作成エラー:エラー検出OS:SSHコマンドの取得中にエラーが発生しました。 ! コマンド:cat/etc/os-release エラー:終了ステータス255 出力: クラッシュレポートのオプトアウト。 '' ' – hamx0r

+0

1)上記のPROJECT_IDをプロジェクトの実際の名前に置き換えてください。2)最初に' gcloud auth login'を実行してください。3. JSONの資格情報ファイルをダウンロードしてくださいGOOGLE_APPLICATION_CREDENTIALSのenv変数で – NateQ

+0

ありがとうございます。今私はドッカーマシンのインスタンスを作成することができます。私はもともと 'eval $(docker-machine env vm01)'でアクティブに設定できない理由を見つけようとしている間に、この投稿を見つけました。このコマンドに対する応答は 'Error checking TLS connection:エラーの確認と再生成/証明書の再生成:ホスト" :2376 "の証明書の検証中にエラーが発生しました:tls:DialWithDialerがタイムアウトしました 'docker-machine regenerate-certs [name]'を使用してそれらを再生成します。 これは、Dockerデーモンを起動してコンテナの動作を停止させることをお勧めします。 ' – hamx0r

関連する問題