首先,我的學習服務器環境:
騰訊雲服務器:1 核 2 GB 1 Mbps
操作系統:CENTOS 7.4
進入正題:進入服務器,安裝docker
yum install docker
然后啟動docker服務
systemctl start docker.sevice
配置開機啟動
systemctl enable docker.service
查看docker版本
docker -v
這是我安裝的版本,1.13.1
------------------------------------------------------------------------------------
接下來,可以准備好.net core 2.2的測試項目了,我這里使用的是.net core 2.2的MVC項目。
首先,修改Program.cs口:
把端口改為8080.后面會知道為什么修改端口。
在項目根目錄創建個dockerfile文件,這個是沒有后綴的。
(PS:如果是新建的項目,可以在新建項目的時候選擇啟用docker支持,會自動生成Dockerfile文件)
原本dockerfile文件里面的配置是有寫進行代碼編譯打包的,但是我這里是本地打包,把發布后的文件復制到服務器上面的,所以這里就改一下dockerfile文件
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 EXPOSE 8080 WORKDIR /app COPY . /app ENTRYPOINT ["dotnet", "WebApplication1.dll"]
FROM是指定該鏡像的運行環境。
然后指定容器映射端口8080
最后dotnet運行項目
發布項目到某目錄,把發布文件復制到linux服務器上面。我這里服務器路徑是 Home/www/testsite
------------------------------------------------------------------------------------------
這里回到服務器。
進入到Home/www/testsite目錄里面。
進來過后,把目錄文件通過dockerfile加載到docker鏡像。
docker build -t testsite:1.0 .
調用命令 docker images 會發現已經有這個鏡像了
如果服務器沒安裝 mcr.microsoft.com/dotnet/core/aspnet:2.2 這個鏡像的話,docker會拉取這個鏡像下來。
最后,運行 docker run -p 8080:8080 testsite:1.0 (8080:8080表示的是容器內端口映射容器外端口)
當看到運行起來過后,就表示能打開了。(如果是雲服務器有安全組策略的,需要打開8080端口。)
通過外網IP訪問xxx.xxx.xx.xx:8080 就能打開了