因為這段時間比較忙,同時也在抽時間將開發框架轉移到 .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下是正常的。