docker-machine 創(chuàng)建主機(jī)(win10)

在 win10 上使用 docker-machine 創(chuàng)建主機(jī)使用 hyperv 驅(qū)動(dòng).

準(zhǔn)備工作

官方提示: 注意,必須事先在 Hyper-V 管理器中新建一個(gè) 外部虛擬交換機(jī) 執(zhí)行下面的命令時(shí),使用 --hyperv-virtual-switch=MY_SWITCH 指定虛擬交換機(jī)名稱

看起來好麻煩, 但是又能怎么辦呢? ⊙﹏⊙

點(diǎn)擊 win 窗口圖標(biāo), 在 windows 管理工具下選擇 Hyper-V 管理器, 然后在右側(cè)操作欄選擇虛擬交換機(jī)管理器, 諾, 像這樣:

3.png

然后在彈出的新窗口中點(diǎn)擊新建虛擬機(jī)網(wǎng)絡(luò)交換機(jī), 選擇外部, 點(diǎn)擊創(chuàng)建虛擬交換機(jī)

4.png

為新的虛擬交換機(jī)取一個(gè)好聽的名字, 然后選擇外部網(wǎng)絡(luò), 選擇相應(yīng)的網(wǎng)卡, 然后點(diǎn)擊確定, 這時(shí)我們的外部虛擬交換機(jī)就準(zhǔn)備好了, 這是創(chuàng)建 docker 主機(jī)的準(zhǔn)備工作

5.png

創(chuàng)建主機(jī)

好了, 準(zhǔn)備工作完畢, 下面就可以創(chuàng)建主機(jī)了, 在命令行中行云流水的敲出這行代碼:

docker-machine create --driver hyperv --hyperv-virtual-switch=docker manager

這里需要在管理員權(quán)限下運(yùn)行命令行

命令跑起來了, 一切都很完美

Creating CA: D:\docker\certs\ca.pem
Creating client certificate: D:\docker\certs\cert.pem
Running pre-create checks...
Creating machine...
(manager) Copying D:\docker\cache\boot2docker.iso to D:\docker\machines\manager\boot2docker.iso...
(manager) Creating SSH key...
(manager) Creating VM...
(manager) Using switch "docker"
(manager) Creating VHD
(manager) Starting VM...
(manager) Waiting for host to start...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...

好的, 繼續(xù)等待...

等待...

...

...

如果你跟我一樣幸運(yùn)的話, 你會(huì)發(fā)現(xiàn), 等了半天, 命令行還是非常優(yōu)雅的卡在了:

Waiting for SSH to be available...

怎么回事, 我是個(gè)急性子啊, 這樣下去, 是要我等到天荒地老嗎?

可能你和我一樣已經(jīng)按捺不住了...

再讓我等可能會(huì)忍不住砸鍵盤了

好吧, 不能再等了, 是時(shí)候行動(dòng)起來了:

$ docker-machine ls
NAME      ACTIVE   DRIVER   STATE     URL                         SWARM   DOCKER    ERRORS
manager   -        hyperv   Running   tcp://192.168.43.196:2376           Unknown   Unable to query docker version: Get https://192.168.43.196:2376/v1.15/version: x509: certificate signed by unknown authority

額...怎么出現(xiàn)了errors, 這是什么鬼

那我試試 ssh 連接這個(gè)主機(jī)吧:

docker-machine ssh manager

進(jìn)不去?

咋辦? 完全不知道怎么回事啊, 好吧, 只有祭出神器了: 百度, google ...

得到一行調(diào)試命令:

ssh -vvv -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 docker@192.168.43.157 -o IdentitiesOnly=yes -i D:\docker\machines\manager\id_rsa -p 22

這里需要修改成你對(duì)應(yīng)的 docker 主機(jī)的 IP 以及私鑰地址

一大堆 debug 信息輸出了出來, 還是連接不到 docker 主機(jī) , 不過這里我們得到了關(guān)鍵信息

debug3: Bad permissions. Try removing permissions for user: S-1-5-11 on file D:\\docker\\machines\\manager\\id_rsa.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'D:\\docker\\machines\\manager\\id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

這個(gè)好像是私鑰的權(quán)限問題造成的, 提示我們?nèi)バ薷乃借€權(quán)限, 好吧.

找到主機(jī)目錄, 這里我的主機(jī)目錄是

D:\docker\machines\manager

這里有一個(gè) id_rsa 文件, 在文件上單擊右鍵, 選擇屬性, 打開彈窗后, 選擇安全

6.png

在這里我嘗試了很多次, 當(dāng)然, 也失敗了很多次, 每次要么就是報(bào) bad permissions 錯(cuò)誤, 就是報(bào) bad owner 錯(cuò)誤, 這里, 我直接給出正確的處理方式

  • 首先, 點(diǎn)擊編輯, 新的彈窗中添加一個(gè)新的用戶, 給到所有權(quán)限, 點(diǎn)擊確定

我的電腦用戶是 Hans, 所以我添加了一個(gè) Hans 用戶, 然后給他所有權(quán)限

  • 然后點(diǎn)擊高級(jí)按鈕, 點(diǎn)擊所有者后面的 更改 按鈕, 將所有者更改為 Hans
  • 緊接著點(diǎn)擊左下角的禁用繼承, 選擇第一項(xiàng), 確定退出
  • 之后再點(diǎn)擊編輯, 刪除除了 Hans 之外的其他用戶
7.png

我這里保留了一個(gè) Administrators 用戶, 把他的權(quán)限只保留了讀取, 不過好像也并不影響

接下來, 在命令行中輸入

$ docker-machine restart manager
(manager) Waiting for host to stop...
(manager) Waiting for host to start...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

嘿嘿, 感覺不錯(cuò)的樣子, 到這里 docker 主機(jī)就算創(chuàng)建成功了.

如果有幫到你, 點(diǎn)個(gè)贊吧.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Docker — 云時(shí)代的程序分發(fā)方式 要說最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,828評(píng)論 15 147
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,728評(píng)論 0 120
  • 摘要:概述 什么是docker-machine,簡(jiǎn)單來說就是給你快速創(chuàng)建一個(gè)docker容器環(huán)境的,怎么說呢,如果...
    暖夏未眠丶閱讀 2,611評(píng)論 1 3
  • 每個(gè)人生其實(shí)都是一段孤獨(dú)的旅途。大多時(shí)候,我們是在與自己相處。父母兒女終會(huì)離開你,愛人亦不會(huì)每時(shí)每刻相伴。喜悅或難...
    三番日辰閱讀 429評(píng)論 0 0
  • 雨花集? 歸元調(diào)理套 —————————— 美女敷包一段時(shí)間改善了乳腺增生, 里邊的結(jié)節(jié)腫塊小了很多! 現(xiàn)在用腎包...
    沫沫smile閱讀 301評(píng)論 0 0

友情鏈接更多精彩內(nèi)容