0

提前致謝。我發現這很令人沮喪,並嘗試了我在網上找到的所有解決方案。碼頭機在gcp上創建失敗

我想用docker-machine在vm中用google雲平臺計算引擎運行docker容器。

我從最新版本的OSX運行它。我已經按照這裏的指南:https://docs.docker.com/machine/drivers/gce/

開始之前我已經運行創建一個服務api並設置它和一個環境變量。通過:「API經理」 - >「憑證」 - >「創建憑證」 - >「服務賬戶密鑰」。保存API密鑰,以我的工作目錄並將其設置爲一個環境變量(運行命令:

GOOGLE_APPLICATION_CREDENTIALS=/Users/MYUSERNAME/NAME_OF_CREDENTIALS_FILE

然後運行

gcloud config set project PROJECT_ID gcloud auth login

哪裏PROJECT_ID是我的項目ID

最後,創建虛擬機的命令並在頂部運行docker:

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

命令失敗,輸出:

notifying bugsnag: [Error creating machine: Error running provisioning: ssh command error: command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

我已經盡泊塢窗機升級到0.12.2,按(https://github.com/docker/machine/issues/4156)這似乎是一個類似的問題。

任何建議將不勝感激! :)

+0

在泊塢窗機固定0.13 –

回答

0

我可以證實,這個問題仍然沒有完全泊塢窗機版本0.12.2解決。

問題0.12.0之前的版本是爲docker.service的systemd配置使用docker daemon而不是新的dockerd守護進程的命令。這似乎現在已經修復。

但對我來說,它使用的配置--storeage-driver aufs,它不適用於一些沒有一些extra packages installed的Ubuntu系統。

如AUFS文檔頁面'Use the AUFS storage driver'中所述,應該使用overlay2存儲驅動程序。

所以,你可以通過編輯服務配置解決這個問題:

$ sudo vim /etc/systemd/system/docker.service.d/10-machine.conf 

它應該是這個樣子:

[Service] 
ExecStart= 
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google 
Environment= 

請注意--storage-driver overlay2部分。

然後,只需運行這些命令來重新加載systemd並開始塢窗:

$ sudo systemctl daemon-reload 
$ sudo systemctl -f start docker 

泊塢窗現在應該運行。

編輯:另一種方式來設置存儲驅動程序是使用泊塢窗機參數--engine-storage-driver

docker-machine --debug create --driver google --engine-storage-driver overlay2 --google-project PROJECT_ID vm0001 
+0

謝謝!這工作是一種享受:) –

+0

很酷。 :)那麼,如果你願意接受我的回答,那將會很棒;) – webmatze