38

Debian 登陸任務 - 執行 ASP.NET Core 容器-黑暗執行緒

 3 years ago
source link: https://blog.darkthread.net/blog/docker-in-debian/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
執行 ASP.NET Core 容器-黑暗執行緒

我的 Linux 主機最重要使命是跑 ASP.NET Core 專案或 .NET Core 服務、排程。前篇文章裝好 Debian 也能跑 .NET 5 之後,下一件任務便是把 Docker Engine 裝起來,只要能順利執行 Docker 容器,Linux 即可上線運轉,至於版本是 CentOS、Ubuntu 或是 Debian 並不重要,只要穩定、安全就好。之所以能這麼灑脫,全拜容器技術之賜,容器摡念讓應用程式擺脫對特定硬體平台、作業系統版本、環境設定的高度相依性,為部署、換版、Scale-Out 擴充作業帶來革命性改變,預期會成為(或者該說已經是)未來部署管理的主流,建議還沒接觸過的同學花點時間了解。(這也是即使是寫 ASP.NET Core 也值得學 Linux 的理由。)

Debian 是 Linux 的一線選項,Docker 有專章介紹如何安裝。

準備工作,安裝透過 HTTPS 存取套件來源的必要工具:

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

取得 Docker 的公開 GPG 金鑰並檢查指紋是否為 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88。(註:Debian/Ubuntu 在使用第三方套件時,需要匯入 GPG 金鑰) 加入 Docker Repository 來源,安裝 Docker 套件:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

這樣子 Docker Engine 就裝好了! 下一步來下載安裝 Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

接著我試著在 Debian 上建立自己部落格的 Docker Image、設定 volumes 對映實體路徑(與 CentOS 相比,Debian 沒有 SELinux,可省去 chcon -Rt svirt\sandbox\file\t /var/www/...的權限設定步驟,相關細節可參考這篇:ASP.NET Core Docker 筆記 2 - 組合容器建構系統),最後 sudo docker-compose up 執行 ASP.NET Core 部落格網站容器。

就醬,沒踩到什麼雷,我的部落格容器順利在 Debian 運轉,我完成了 Debian 登陸任務,Debian 正式成為我的 Docker 容器主機選項。

Fig1_637441529704262938.png

最後,回頭補充 Linux 版本選擇議題,這陣子承蒙不少 Linux 前輩分享心得或提供建議(特此感謝),對各家版本再多一點認識,追加幾則心得。

我把 Linux 分為自用跟商用。自用的選擇相對單純,看你高興,用得開心就好。商用的則可再區分 新創/小型公司 vs 中大型企業。新創及小型公司較在意成本,Linux 多用來跑自家系統,只要技術人員熟悉扛著住,免費的 CentOS、Ubuntu、Debian 都是不錯選擇。中大型企業的 Linux 常拿來跑商用軟體,要考量軟體是否適用、廠商技術支援... 等等。我想到一個新角度來看「企業常用什麼 Linux 版本?」,檢視雲端平台的 Linux VM 選項,以及重量級商業軟體支援的版本:

綜合來看,RHEL 跟 SUSE(SLES) 普及率最高,三大雲端平台、SAP、SQL、Oracle 都支援。但大型商業軟體採用何種 Linux 版本由廠商指定的機率挺高,企業 IT 單位要配合培訓或召募人才,未必輪得到技術人員決定。自行開發系統時,企業 IT 較有自主決定權。從開發人員角度,只要能跑 Docker,Linux 作業系統是什麼版本(或是直接上雲端)差異不大;故採用何種 Linux 版本對 IT 單位的影響比較大,要考量穩定性、學習資源、技能價值(換工作時能不能加分)、授權成本、廠商支援... 等,猜想也會走「西瓜偎大邊」策略吧! 回頭想想,Linux 的核心操作系統大同小異,熟悉一種後要跨到另一個版本並不難(像是我的 CentOS 經驗有許多在 Debian 也適用),與其斟酌再三遲遲無法決定,還不如快點挑一個鑽進去玩,覺得不 OK 再換囉,哈!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK