Docker & DaoCloud 實踐

背景

因為需要使用一個在32bit debian系統中的一個c庫作為webserver的一個子進程,但是現在32位操作系統的服務器太少了。所以這次選擇使用docker封裝應用棧來完成功能。

實驗

Ubuntu安裝Docker

Docker目前只能安裝在64位CPU架構的計算機上,同時需要Linux內核為3.10及以上的版本

  • 檢查Linux系統內核

    $ uname -r
    
    4.8.0-22-generic
    
  • 更新系統源

    $ sudo apt-get update
    
  • 更新Https和CA證書

    $ sudo apt-get install apt-transport-https ca-certificates
    
  • 添加新的GPG Key

    $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    
  • 添加Docker源

    $ echo "deb https://apt.dockerproject.org/repo ### main" | sudo tee /etc/apt/sources.list.d/docker.list
    

    這邊可以根據Ubuntu版本修改Docker的源,在###處添加即可。該源文件在/etc/apt/sources.list.d/docker.list

    • Ubuntu Xenial 16.04: ubuntu-xenial
    • Ubuntu Wily 15.10: ubuntu-wily
    • Ubuntu Trusty 14.04: ubuntu-trusty
    • Ubuntu Precise 12.04: ubuntu-precise
  • 更新系統源

    $ sudo apt-get update
    
  • 校驗APT是否正在拉取爭取的源。

    $ apt-cache policy docker-engine
    
    docker-engine:
    Installed: 1.12.2-0~trusty
    Candidate: 1.12.2-0~trusty
    Version table:
    *** 1.12.2-0~trusty 0
    500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    100 /var/lib/dpkg/status
    1.12.1-0~trusty 0
    500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    1.12.0-0~trusty 0
    500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    1.11.2-0~trusty 0
    500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    1.11.1-0~trusty 0
    500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    
  • 安裝linux-image-extra-*包

    $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
    
  • 更新系統源

    $ sudo apt-get update
    
  • 安裝Docker

    $ sudo apt-get install docker-engine
    
  • 啟動Docker Daemon

    $ sudo service docker start
    
  • 校驗Docker是否安裝正確。

    $ sudo docker run hello-world
    

修改國內源

目前因為墻的原因,使用國外的源速度還是很慢的,而且經常斷線。所以最好換成國內的源,國內的有daoCloud、阿里等,我現在使用daoCloud

  • 修改配置文件

    $ vim /etc/default/docker
    
    DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"
    
  • 重啟docker服務

    $ service docker restart
    

配置節點

  • 首先我需要一個32bit debian系統

    $ docker pull 32bit/debian
    
  • 然后通過這個鏡像創建容器并且配置容器

    // 以交互模式通過鏡像啟動容器,并打開容器的/bin/bash
    $ docker run -it 32bit/debian /bin/bash
    
  • 進去之后肯定先修改一下debian的源

    $ vi /etc/apt/sources.list
    
    deb http://mirrors.163.com/debian jessie main non-free contrib 
    deb http://mirrors.163.com/debian jessie-proposed-updates main contrib non-free 
    deb http://mirrors.163.com/debian-security jessie/updates main contrib non-free 
    deb http://security.debian.org jessie/updates main contrib non-free
    
    $ apt-get update
    
  • 使用wget把我需要的c庫先拉下來

  • 然后發現鏡像里是不自帶make、g++環境以及一些編譯環境flex、yacc的,先安裝一下

    $ apt-get install make g++ byacc flex
    
  • 安裝好了之后,編譯是沒有問題的,那么庫的環境就配好了,再配一下webserver的環境就行了,這里不贅述。因為目前我沒有更好的辦法把webserver與c庫解耦到兩個容器當中,所以暫時把他們放在一個容器中,對外開發webserver的端口。

  • 一切就緒以后,我就需要把現在這個容器再打包成一個鏡像并將它發布,遷移至服務器上。

打包發布鏡像

  • 在該容器當中一切都配置好以后,先exit退出容器,然后將容器制作成新的鏡像。

    // 查看所有的容器
    $ docker ps -a
    // 找到自己需要打包的容器的id
    $ docker commit <your-repertory-id> <your-image-name>
    
  • 然后這邊我是通過daocloud進行發布

    // 先使用daocloud賬戶登錄
    $ docker login daocloud.io
    Username:
    Password:
    // 先對鏡像打一個標記
    $ docker tag <your-image> daocloud.io/<your-repertory>/<your-image>:<tag>
    // 再將鏡像推送到遠端的倉庫
    $ docker push daocloud.io/<your-repertory>/<your-image>:<tag>
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容

  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,580評論 15 147
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,792評論 1 21
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,776評論 0 7
  • 回家調檔案。 哈哈這件事也是挺佩服自己的,本來開學之前有兩個月的時間給我調檔案的,結果到現在開學都一星期了才匆匆忙...
    山頂的黑狗兄閱讀 205評論 0 1
  • 今天是世界艾滋病日,在這個特殊的日子里,直播圈發生了一件讓人感到溫暖的事。 ?LOL知名主播若風今晚在直播中為艾滋...
    f伐木累閱讀 3,430評論 0 0