寫在前面

Docker作為開源的應用容器引擎,可以讓我們很輕松的構建一個輕量級、易移植的容器,通過Docker方式進行持續交付、測驗和部署,都是極為方便的,并且對于我們開發來說,最直觀的優點還是解決了日常開發中的環境配置與部署環境配置上的差異所帶來的種種疑難雜癥,從此推脫產品的措辭也少了——“我電腦正常啊!”,總之,Docker伴隨著“真香定理”的存在,
以windows10下安裝Ubuntu子系統為例
1. 1 在微軟應用商店安裝Ubuntu

1.2 啟動并設定密碼

另外,如果想要安裝影像界面,就自行百度吧,這里就不安裝了,真男人都是直接擼命令列的,
Ubuntu下安裝Docker
命令匯總:
//https://www.cnblogs.com/EminemJK/p/13188444.html
sudo apt-get remove docker docker-engine docker-ce docker.io sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" apt-cache madison docker-ce sudo apt-get install docker-ce sudo service docker start
2.1 移除apt官方舊的docker版本
sudo apt-get remove docker docker-engine docker-ce docker.io
2.2 更新apt
sudo apt-get update

2.3 配置apt可以通過HTTPS使用拉取鏡像
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
2.4 設定Docker官方的GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

2.5 添加stable存盤庫
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

2.6 安裝docker-ce社區版
sudo apt-get install docker-ce

2.7 啟動docker
sudo service docker start

2.8 結束了嗎?還沒,查看docker運行狀態
sudo service docker status

然后使用以下命令查看docker版本,會發現只有Client,沒有server,所以這個就是在windows下的子系統的特殊性,需要額外下載 Docker for windows,作為Docker的服務端,
docker version
2.9 安裝并運行 Docker for windows
安裝完成后,會自動重啟電腦,所以你熬夜寫的代碼要記得先保存,重啟之后,再設定即可,


2.9.1 配置及重繪環境變數
echo "export DOCKER_HOST='tcp://0.0.0.0:2375'" >> ~/.bashrc source ~/.bashrc

在這埠為什么是2375,注意看上面的docker for windows的配置,再次查看版本

終于安裝好docker,
發布Blazor
3.0 因為Blazor WebAssembly App暫未支持docker,所以新建一個Blazor Server專案

3.1 添加docker檔案

3.2 選擇Linux并修改Dockerfile檔案
# 使用運行時鏡像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
# 設定作業目錄
WORKDIR /app
# 把目錄下的內容都復制到當前目錄下
COPY . .
# 運行鏡像入口命令和可執行檔案名稱
ENTRYPOINT ["dotnet", "BlazorApp.dll"]
3.3 發布(此程序有點久)


發布至Docker
在windows10子系統中,我們無需像獨立的Linux需將檔案拷貝至Linux系統中,通過以下命令查看到磁盤情況,會發現其實已經幫我們掛載好了,無需復制拷貝發布的檔案,又是真香,
df -h

4.1 直接cd進入發布路徑

4.2 構建鏡像
docker build -t blazorapp .
注意,不能用大寫,這里提示必須用小寫來命名,并且有一個【.】在結尾

4.3 創建容器
docker run -d -p 8072:80 blazorapp

說明:容器暴露80埠,并指定宿主機8072埠與其通信(宿主機埠:容器暴露埠),
4.4 查看當前鏡像
docker image ls

Nginx請忽略,是后面我才安裝的,
完成發布

docker發布到私有倉庫
發布到私有倉庫,這里用docker Hub做示例,首先在docker Hub 上注冊好賬號,然后進行推送,
6.1 打上標記
docker tag blazorapp liohuang/blazorapp
如未登錄,會提示先登錄賬戶,
6.2 推送至倉庫
docker push liohuang/blazorapp


下次使用的時候使用pull命令拉取即可,
本文已獨家授權給DotNetGeek(ID:dotNetGeek)公眾號發布
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/4888.html
標籤:.NET Core
