image

##前言

其實Docker一直是我一個很想玩但是玩不起的技術.主要是因為我的MBA空間太小,隨便一個docker image 就有3~5G.小小128G MBA實在無法來順利成行. 最近有要跨平台跑東西的需求,決定弄幾個docker image可以幫助我處理一些令人討厭的設定.

這次主要是用到Windows桌機,裡面至少有足夠的硬碟空間可以讓我做這件事情.

Docker Windows 可能遇到的困難與筆記

####Docker Quickstart Terminal的console 顯示實在令人搖頭

Windows 上的Docker Quicktstart Terminal 使用MingW Console本來也是還好,但是在我電腦實在就有console顯示的問題. 建議使用ssh login來跑.

方法如下:

  • 跑”Docker Quickstart Terminal” 來將docker VM 跑起來
  • 你會看到 "default" machine with IP 192.168.99.100 (每個人IP不同)
  • 使用putty來登入SSH putty.exe -ssh [email protected]:2376 -pw tcuser 帳號跟密碼都是docker預設,沒有改過應該就可以正常跑.

把以上的指令弄成捷徑在桌面,就可以登入數個docker console

Docker Quickstart Terminal console 會遇到的 volume mount問題

Docker -v提供一個很好的方式可以讓本地端的檔案跟docker container去對應與操作.但是在Windows上面會遇到永遠找不到的路徑問題.(詳細可以參考這裡 還有這個)

    ##這樣在Windows boot2docker 跟 docker quickstart terminal 都會失敗
    docker run -v /c/Users/USER/TEST:/OUTPUT --rm=true DOCKER_IMAGE_NAME
    
    
    ##必須使用以下的指令  注意是"//c"  而非 "/c"
    docker run -v //c/Users/USER/TEST:/OUTPUT --rm=true DOCKER_IMAGE_NAME

這個問題在我剛剛提到使用SSH console是不會有這樣的問題的,所以我強烈建議各位使用docker SSH console.

建立Dockerfile

想要建立一個Docker Hub可以讓人家可以下載的Image或是 Dockerfile,其實不難.步驟以下:

  • 先建立一個github repository裡面只需要有Dockerfile (當然有README.md 更好 :) )
  • Docker Hub (記得要先註冊帳號) 的 Dashboard 選取 [Create] -> [Create Automated Build]
  • 輸入Github帳號去鏈結,選取剛剛建立的github repository
  • 他就會抓取Dockerfile自動跑

建立一些成果分享

Docker image for building OpenSSL for Android

其實會使用這些前提,如果你跟我一樣是:

  • 在Windows 上寫Android App
  • 極度討厭 Cygwin跟MinGW
  • 對於build module一向講求,build完就不需要那些環境

之前做法當然笨笨的使用VM建了一個超肥的VM裡面也裝了一堆不知道有什麼東西.來build一些需要的module. opencv ffmpeg都是如此.

這次我改成自己Dockerfile 參考這裡


Evan

Attitude is everything