1.引言
在具體實操前,首先介紹一下.NetCore及docker的相關概念。
1.1什么是.NetCore
.NetCore是適用於 windows、linux 和 macos 操作系統的免費、開源托管的計算機軟件框架,是微軟開發的第一個官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的應用程序開發框架 (Application Framework)。使用.NetCore,我們可以:
-
建置 Web 應用程序和服務、IoT 應用和移動后端。
-
能夠在 Windows、macOS 和 Linux 上進行開發和運行。部署到雲或本地。
-
在 .NET Core 或 .NET Framework 上運行。
-
能夠在 IIS、Nginx、Apache、Docker 上進行托管或在自己的進程中進行自托管我們的應用。
關鍵詞:跨平台
1.2 什么是Docker
Docker 是一個開源的應用容器引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在本地編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平台。
2. 安裝前的准備
啟用Hyper-V。打開【控制面板】》【程序】》【啟用或關閉Windows功能】,勾選Hyper-V節點下所有的選項,點擊【確定】並重啟計算機。
3. Docker安裝
3.1 Docker下載
這里主要是下載docker for windows版本,下載鏈接:https://www.docker.com/products/docker-desktop
3.2 Docker安裝
(1)運行下載好的【Docker Desktop Installer.exe】文件,只勾選【Add shortcut to desktop】選項,點擊【確定】完成安裝。
(2)檢查是否安成功,啟動docker並打開cmd命令窗口,輸入docker -v,如安裝成功則能看到很隨意的版本號。
(3)配置鏡像加速器,登錄阿里雲,在控制台找到【鏡像中心】》【鏡像加速器】,copy加載器地址。
(4)在狀態欄右鍵docker打開settings窗口,切換到【Daemon】選項頁,把(3)的地址復制到【Regisry mirrors】輸入框中。
(5)共享磁盤。在settings里切換到【Shared Drives】選項頁,勾選要共享的磁盤。
4.新建.NetCore Web應用程序
(1)啟動VS創建一個Web應用程序,選擇Core2.2版本
注意:【啟用Docker支持】選項不勾選,后面手動進行配置
(2)發布網站。解決方案右鍵選擇【發布】,選擇文件,選擇默認就可以。
5.創建Docker Images
(1)導航到剛剛發布的目錄,這里為~\DockerDemo\DockerDemo\bin\Release\netcoreapp2.2\publish,新建Dockerfile文件(沒有后綴)。輸入如下內容:
-
FROM mcr.microsoft.com/dotnet/core/aspnet: 2.2-stretch-slim AS base
-
WORKDIR /app
-
COPY . .
-
EXPOSE 5000
-
ENTRYPOINT [ "dotnet", "DockerDemo.dll"]
(2)打開cmd窗口,cd到publish路徑下,輸入docker build -t dockerdemo001 .(注意最為英文句號,表示在當前目錄下搜索Dockerfile文件)
輸入docker images,檢查是否創建成功
(3)運行。輸入:docker run --name dockerdemo001 -p 5000:80 -d dockerdemo001
如出現如下http://[::]:80則代表成功,如沒有繼續輸入:docker run dockerdemo001
(4)在瀏覽器輸入http://localhost:5000,恭喜已成功運行
6.結束語
初次使用docker,由於對docker認識還不夠,所以在整個事例驗證過程中磕磕碰碰、遇到無數的坑......