顯示具有 Docker 標籤的文章。 顯示所有文章
顯示具有 Docker 標籤的文章。 顯示所有文章

2015/10/27

用 Docker 協助學習Social Network Analysis

用 Docker 協助學習Social Network Analysis

這次遇到的狀況是用了最新的 R jupyter / Rstudio(R/win) 無法安裝igrpah 套件(??!!),所以只能先找目前網路上已經包裝好的 RStudio Server + igraph

下載Docker images(docker pull)

先在google透過關鍵字尋找有沒有被人家包裝好的docker iamges,發現有一個: 我的狀況是透過 VirtualBox 中的 Ubuntu 14執行以下指令 sudo docker pull zachcp/phylogeo

執行d ocker images

簡單執行 sudo docker run -d -p 8787:8787 zachcp/phylogeo 預設的帳密 username: rstudio password: rstudio

調整桌機 Virtual Box 網路設定

因為我們想要Browser來操作 Rstudio Server版本,又因為VM是在Virtual Box中執行,所以我們要設定轉port;在很多的情境下,都會建議主機ip設定為 127.0.0.1;但此處我直接把ip留空白,因為後續我會在區網利用另一台Mac筆電進行連線,如果此處你設定了 127.0.0.1 則只有本機有機會連線 IP2

利用Mac連線PC桌機的Rstudio Server

在筆電的 Chrome 輸入 http://192 .168.1.117:8787

下載 Github 上的資料

利用 Rstudio 的 Shell, 輸入: git clone https://github.com/johnmyleswhite/ML_for_Hackers 就可以把資料下載回Rstuio Server

Rstudio Server 上下傳資料

下載資料: 在 Files 視窗介面下 -- More -- export 即可把Server上的資料下載回筆電
上傳資料: 在 Files 視窗介面下已預設有 Upload 按鈕

保存 Docker images

有時候因為學習需要又下載了新的套件,不想要下次docker run時還要重新安裝一次則可以進行保存
sudo docker commit d9ae87d0828a zachcp/phylogeo:v2 
其中 d9ae87d0828a 是可以透過 docker ps 查詢到的容器id
不過若是在隨身碟上執行此一指令需時較久,建議還是將過程中的檔案直接下載到本機備份較快

2015/10/14

windows10 kitematic(docker gui)掛載windows目錄

windows10 kitematic(docker gui)掛載windows目錄

kitematic 提供了GUI介面,以利 docker 的安裝與操作;
在官網下載安裝後,一直按下下一步就可以安裝完成;實際上是透過virtual box的方式來達成docker環境的架設。

步驟

  • 在docker hub蒐尋 jupyter/datascience-notebook 進行安裝,裝好後即running
  • 在 kitematic 介面中尋找 Volumes 進行設定,可以發現無法進行設定
  • 執行 Docker Quickstart Terminal
  • 輸入 docker ps ,確認一下目前執行的 jupyter/datascience-notebook ID
  • 先將jupyter/datascience-notebook給停掉:docker stop 輸入id
  • 手動執行以下指令,重點在於 -v 指令,本機直接用 /host 代稱
    • docker run -d -p 8888:8888 -e GRANT_SUDO=yes -v /host:/home/jovyan/work jupyter/datascience-notebook
    • 原本 ubutnu 底下可以直接指定目錄,但是windows目錄是無法直接掛載
  • 回到kitematic 介面中,可以發現會自動命名一個新的容器名稱,且此時可以用GUI方式指定windows目錄…

備註

  • 目前kitematic在windows底下的使用,其實不會比直接在vm ubuntu直覺太多,進階指令還是要回到 Docker Quickstart Terminal執行
  • kitematic 介面中預設搭配的shell是 powershell,嗯… 非常難用
  • 沒有在mac上測試過,我猜mac應該不用這麼麻煩…

2015/10/8

Python 環境切換與管理[簡易版]

Python 環境切換與管理[簡易版]

Python 目前比較麻煩的是有 Python 2 / Python 3 的版本,然後 Mac 也有自帶的Python, 初學者往往在一開始時容易困擾…
例如:pip install 套件後,到底是安裝到那一個 python 環境呢? pip3 ?? pip ??

解決方式:

  • (1)使用 Pyenv 完全隔開不同的 Python
    • 例如:隔開之後再安裝不同版本的 Anacnoda(預設安裝很多的python套件)
    • 因為是完全分開的,所以依據你所使用的環境進行 pip install 套件安裝,不會與原先系統預設的python環境對衝
    • Anacnoda 官網介紹說 Anacnoda 已經具備有套件與環境管理機能,但依照我自己的使用經驗,建議還是先裝 pyenv 來把環境完全切割比較好…

  • (2)使用 Docker image
    • 例如:我目前使用這組 Docker image; https://hub.docker.com/r/jupyter/datascience-notebook/
    • 好處是已經有了 python 2、python 3、R 的Jupyter 
    • Python 套件安裝
      • 此 Docker 預設的Python環境是 Python3 ,所以如果是 pip install 套件,則會安裝套件至 Python3
    • 若要安裝 Python2套件呢?
      • 首先要知道 docker 中有多少python環境
      • conda env list → 可得知安裝 python2 的環境叫 python2
      • 選擇 python2 環境: source activate python2
      • 再次使用 conda env list 確認目前的環境
      • 使用 pip install 套件。例如: pip install beautifulsoup4
      • 安裝後新的套件後(安裝至 python2中),記得下 docker commit 指令把容器的狀態給存起來
  • 備註
    • 因為 docker 本來就是虛擬化工具,docker中發生了什麼事情對於主系統都不會有什麼影響,所以docker中就沒有必要再安裝 pyenv;當然這是用空間(SSD/HD)來換取煩雜的設定時間損失。

備註:

conda常用指令:
  • (1)目前作用中的環境安裝了多少python套件 conda list ;
也支援這樣的語法 conda list baut* ,則列出:
beautifulsoup4 4.4.1
  • (2)切換環境
source activate python2
  • (3)目前有那些python環境
conda evn list
參考資料: http://conda.pydata.org/docs/_downloads/conda-pip-virtualenv-translator.html

2015/10/3

利用 docker 協助程式學習

作業模式/情境
  • 出門帶著 Mac + Docker化隨身碟,確保作業環境為純 linux 開發環境
  • 在家使用 PC桌機(16GB) + Docker化隨身碟,確保作業環境為純 linux 開發環境
  • 有些在 mac 上極難安裝的程式在 Ubuntu 上的 Docker 異常簡單
  • Mac / Windows 雖然都有 Docker Tools 但很難用,還不如直接用虛擬機 Ubuntu設定
  • 目前學習 Docker 是為了學習程式開發,暫不學習更進階的議題
  • 使用網路爬蟲捉資料時用 PC 桌機上的 linux 的Docker R來進行資料的取得
  • 節省 docker 若安裝 mac上 的 SSD空間浪費
  • Docker Hub上有各式神人提供的設定好的Dockerfile

step:

  • 購置一個市面上販售最快的 64GB 隨身碟(不用1000元)
  • 將其格式化為 exFAT
    • Mac / Windows / Linux 都可以讀寫
  • 在 Mac / Windows 都安裝上 virtual box
  • 將 Mac / Windows virtual box 預設的資料夾指向隨身碟
  • 下載各式的 Linux Based VM並安裝
    • Ubuntu 15 Server
    • Ubuntu 14 Server
    • Ubuntu 14 Desktop
    • Ubuntu + GIS
    • 帳號與密碼儘量單一化,因為都是為了學習而非實際生產環境

  • 以隨身碟中VM: Ubuntu Server 15為主,進行各項設定
    • 安裝 vsftp 以利資料交換
    • 安裝 docker
      • 安裝 docker 化軟體
      • 例如:Jupyter Notebook,以利學習 R / Python / Spark
      • 依情境將 virtual box 中的網路設定 port forward