標籤:
因為這段時間比較忙,同時也在抽時間將開發架構轉移到 .net Core 上 所以寫部落格的時間就少了,這次我利用dockerfile成功將.net Core程式部署到了cenos7容器中,特抽時間把我的操作過程總結出來和大家分享。
首先要準備一個LINUX系統,可以是ubuntu,也可以是centos,我用的是虛擬機器上裝ubuntu14.04
然後安裝docker,這個安裝過程我就不說了,大家自己在網上搜尋一下吧,大把,操作也簡單。
我用的版本是
然後我建議先pull一個centos 7的鏡像到本地,雖然直接在Dockerfile裡面寫指令也可以,但是那樣執行起來會有點慢。
操作完後執行查看鏡像命令,確認是否成功
這個鏡像有196.8M,還好不算很大
因為這個鏡像是很純淨的,沒裝任何東西,.net Core運行需要依賴兩個庫,所以我們要先把這兩個庫安裝進去。
首先讓我們啟動一個容器
先安裝libunwind
有讓你選擇的時候直接輸入y就行了
看的這個就是安裝完了。
然後再安裝 ICU 一樣的安裝方式
這樣就是安裝完了。這時我們需要將這個修改後的容器儲存為鏡像,這樣就不需要每次都這麼操作了。
這時候再查看鏡像就會發現這個鏡像變大了,因為我們的組件都安裝進去了,也提交成功了
好,到這裡我們鏡像的準備工作己經做好了,我們只要寫個dockerfile然後把發布的程式一起運行起來就可以了。
首先我們先發布一個centos7的 .net Core案例代碼
開啟項目配製檔案
加入運行配製
記得要把上面這裡刪除掉
然後開啟CMD 運行命令
這樣就發布成功了
我們把發布出來的代碼上傳到虛擬機器上
現在準備工作差不多了,我們來看一下 Dockerfile,這個檔案比較簡單
基於我們之前準備好的鏡像,將當前的檔案複製到容器中,給檔案夾許可權,開放連接埠,運行程式
我們將這個檔案放在我們發布的程式裡面
我們在虛擬機器上先進行到程式目錄,然後運行命令
運行完以後我們就得到了我們最希望得到的鏡像
我們運行它
這裡做了連接埠映射,這樣我在外部就可以訪問它了
請忽略上面的這些代碼,這些是我做測試用的。
可能大家不太瞭解的人會覺得我們走了這麼多步驟就只是為了運行一個程式,是不是太麻煩了,這個東西好像也沒什麼用。
其實不然,我們之前的準備工作確實做的多了一點,但之後就只需要兩個步驟了
以後你再發布程式只需要這兩個命令就可以讓它跑起來。
我們可以裝這個鏡像發布到公有庫或是企業內部庫,這樣所有人都可以共用,你只需要把代碼發布到一個地方,測試人員直接運行兩個命令就可以跑你的程式,而且不會出現因為環境問題影響測試結果。
而且我們可以開啟多個容器,可以本地測試負載平衡下程式運行情況等等,反正還有很多種運用,我也在摸索中,希望和大家一起進步。
最後補充一點,在ubuntu14.04容器下運行失敗,一直報錯
好像這個暫時沒辦法解決,只能等版本更新看能不能修複這個問題了,centos下是正常的。
.Net Core+cenos7+Docker+Dockerfile 部署實踐