最完整的Docker聖經 - Docker原理圖解及全環境安裝

建立自動登入的CoreOS

本小節將說明使用SSH的Private key進行登入的CoreOS VM,其中已經安裝好最新版本的Docker了。

啟動CoreOS的VM並獲得IP

  1. 前往http://alpha.release.core-os.net/amd64-usr/current/index.html, 並且下載coreos_production_vmware_insecure.zip
  2. 下載回來後解壓可以看到標準VMware格式的vmxvmdk,及insecure_ssh_key,放入一個固定的地方,如D:\VM\Coreos中。
  3. 直接使用VMware Workstation開啟這個虛擬機,並且將此VM啟動。
  4. 進入登入界面時,直接按下enter,就會出現IP位置。

Windows下使用puttygen轉換insecure_ssh_key

Linux/Mac客戶端直接進入終端命令列操作ssh沒問題,這邊特別嘉惠Windows下的使用者,看如何PieTTY套用ssh key。先下載puttygen.exe吧

先下載Windows專用的puttygen.exe

  1. 進入puttygen的介面,選擇Load
  2. 選擇CoreOS資料夾的insecure_ssh_key
  3. 載入成功後,按下Save private key,將這個key輸出到\CoreOS\的同目錄下,出現圖中的視窗時直接按Enter,檔名自己取即可。


  4. 此時可以看到這個CoreOS專用的Private key已經建立了。

使用Private key無帳號密碼ssh登入CoreOS

  1. 首先進入PuTTY或PieTTY的介面,選擇PuTTY模式。
  2. 輸入剛才開機CoreOS的IP,並且將這個連線存檔為CoreOS,最方便的還是使用標準ssh格式,如core@192.168.1.108,將使用者名稱放在前面。
  3. 選擇SSH/Auth的地方,將剛才產生的key選過來。

  4. 選擇Session,並且別忘了按下Save

  5. 此時按下Open,就可以直接ssh入這個CoreOS而不需要帳號密碼了。第一次連線時會出現圖中的視窗,直接按Yes
  6. core這個使用者已經是root權限,因此可以直接使用,不需要sudo輸。入docker version,可以看到docker的版本,而輸入docker run -d --name web -p 8080:80 joshhu/webdmo,可以直接執行。
  7. 如果看到圖中的網頁畫面,表示這個CoreOS也部署完成了。

  8. 如果你也想將這個VM部署到vSphere下,請參考下一小節有關轉換到OVF的步驟。

Mac/Linux下直接進入

在Mac/Linux的終端機視窗中,與insecure_ssh_key的同目錄下,直接輸入 ssh -i insecure_ssh_key core@<CoreOS的IP位置>

ssh -i insecure_ssh_key core@192.168.1.109

CoreOS的docker scripts加入

CoreOS VM中的Docker,由於所有使用者的設定檔都連結到/usr/share/skel/.bashrc,要先將core這個使用者.bashrc的連結移動到獨立自主的.bashrc,再執行上面的指令,先用core這個使用者名稱ssh連入這個VM,再輸入下列指令:

cp ~/.bashrc ~/.bashrc.my
rm ~/.bashrc
mv ~/.bashrc.my ~/.bashrc
wget -P ~ https://github.com/joshhu/docker/raw/master/docker_scripts/.bashrc_docker;
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc;
wget -P ~ https://github.com/joshhu/docker/raw/master/docker_scripts/showmem.coreos;
mv ~/showmem.coreos ~/showmem;
chmod +x ~/showmem;