跳到主要內容

發表文章

目前顯示的是 九月, 2014的文章

start a shutdown docker container

使用Docker ubuntu14 container登入


登入後得到"421f28ed9919"這個container id 在資料夾下面建立一個123的檔案 在原本的概念中,如果離開(exit),則剛剛所有的異動都會消失... 但是,有辦法重新啟動當下的狀態嗎.... 答案是可以的!
從離開container "421f28ed9919"之後開始....
在本機使用ls查看/var/lib/docker可以看得到docker的一些設定檔資料 查詢之下的containers,可以看到該id對應到的完整id資料夾... 列表這個資料夾中,可以看到一些container細部設定...


而docker的一些檔案本應該存放在"/var/lib/docker/aufs/mnt/421f28ed9919bac139fd588199ff5ee15cf2054377a4a31261546397029795af"這個資料匣下面 因為離開了container,所以該資料匣裡面是空的...


在這邊我們看到Docker container id的對應421f28ed9919 --> 421f28ed9919bac139fd588199ff5ee15cf2054377a4a31261546397029795af 後面的完整id代表可以再次喚醒docker的重要參數... 透過docker start [fill_id],我們可以重新啟動docker container...


檢查一下程序,會看到421f28ed9919重新提供服務...


此時使用attach可以在回到該程序... 再檢查一下資料匣,可以看到"123"仍然存在著...


在登入狀況下列表"/var/lib/docker/aufs/mnt/421f28ed9919bac139fd588199ff5ee15cf2054377a4a31261546397029795af" 會發現對應到docker container "421f28ed9919"的檔案內容都存在在這個資料匣下面...


透過docker start啟動執行過但是離開了的docker container... 讓docker又有另一個層面的意義了!!

gsutil小技巧

使用Help page gsutil help gsutil help [sub-command]
使用Parallel上傳 gsutil -m cp $FROM_FILE gs://mybucket
上傳前先確認並排除Bucket中重複檔案: gsutil -m cp -n $FOLDER/*.gz gs://my0bucket/
Rsync上傳方式 gsutil rsync $FOLDER gs://my-bucket
Dump MySQL & zip & transfer to bucket.... mysqldump -u u1 mydatabase | zip | gsutil cp - gs://bucket/sqldump.zip 
Create text file to cloud storage echo "Hello Senao" | gsutil cp - gs://gsweb.micloud.tw/index.html
Upload with more attribute (-z: 指定上傳檔案類別,-a: 指定權限) gsutil cp -z html -a public-read /tmp/index.html gs://gsweb.micloud.tw/index.html


存取docker container內的檔案

Docker既然是container概念存在,就想到應該可以透過原filesystem找到對應的container內的檔案Google了一下,在/var/lib/docker/這個目錄底下可以找到對應的container實際存在的位置... 列印一下目錄可以發現aufs/mnt下有一堆長檔名的資料夾...


透過docker ps或是進入到docker container後,可以看得到docker的instance id 範例中是:61ba7253b842


因此進入到"/var/lib/docker/aufs/mnt/"後,後面加讓instance id後,在透過tab補字可以列出該container相關資訊 其中會包含一個有"-init"跟一個純instance id的資料夾...


列表一下這兩個資料夾


其中無"-init"的目錄存放的就是container對應的磁碟位置
測試一下檔案的存取....,切到該目錄下,touch一個檔案...


結果真的可以在container內部看到對應touch出來的檔案


透過可見的目錄位置,container與host在某個層鍍上可以互通許多東西喲... 檔案傳輸也不用再透過scp或ftp方式存取,超方便的拉!

Google Compute Engine Global Load Balancer

Google Compute Engine服務為了在雲服務上更完整,在GLB上當然是不可或缺,這邊介紹的Globsl Load Balancer(GLB)是Google新推出的雲端負載平衡應用,讓使用者可以透過網頁設定串聯全球的應用程式伺服器.... 目錄分類在Compute Engine之下: 點選Create之後,會建立一個所屬的GLB(Global LB) Instance,而在其中包含兩個部分: Incoming traffic: 管理入口設定,包含forward rule與最下面的URL mapforward rule: 管理路由設定,包含開放哪個port, GLB ip address等URL map: 管理url對應到的pool,可以讓特定的url指到特定的server poolBackend services: 設定後面要服務的backend server群組,在GLB中,可以跨Region指定instance 增加一個global forward rule: Backend service 設定,透過建立instance group與選擇group的成員instances來建立backend service,在這邊可以指定load sharing的機制、分散的策略...等等 等全部資訊填寫完畢,則可以下一步... 下一部包含新增加VM instances 按下"Add"確認之後,則會將對應的backend instance group設定出來,此時可以修改Backend對應到的port number跟timeout時間... 在選擇existing instance group中,是讓您可以選擇前面步驟所建立的group做request的承載... 這邊可以選擇instance的QPS, Utilize等等 最後設定forwarding rule… 這邊目前只允許80, 8080,這亦代表Traffic目前尚不支援SSL offload功能,SSL offload相關應該未來才會提供... (SSL offload可以降低AP server的負擔,但也意味著進到該LB服務後,SSL已經消失,所有資訊以明碼傳送...) 關於最下面的CAPACITY選項,如果勾取可以設定Drain的相關設定,該設定關係到之後調整Pool Size…

GCE daily snapshot script

想要替自己的硬碟定時執行備份嗎? 透過下面一段script加上crontab可以定時為指定的硬碟執行備份 並可以刪除一周以前的備份資料... 提供給大家參考

Gist: https://gist.github.com/peihsinsu/73cb7e28780b137c2bcd