FineUI用了好多年,最近出了FineUICore版本,一直沒時間是試一下docker,前幾天買了一個騰訊雲服務器,1核2g,裝了centos7.6,開始的時候主要是整個個人博客,在騰訊雲安裝了寶塔,寶塔linux面板,web界面一鍵管理linux服務器,很是方便,沒有linux基礎的也可以玩linux。
- 拋開寶塔,還是用騰訊雲的SSH來登陸centos吧:
登陸成功,如果顯示這種:
說明22端口沒有 開啟,需要到騰訊雲安全組開啟
編輯,把拒絕改成允許並保存。
2、先保證是root登陸,不是的要切換成root,敲命令 uname -a,查看內核版本:
Linux VM_0_6_centos 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
這個其實是無用功,我們已經知道這台騰訊雲的centos是7.6版本,裝docker是沒有問題的,centos6.5也沒有問題
3、把yum包更新到最新,如果你事前 把centos 的python2.7更新到最新版本python3.8,那么這個時候更新yum 后會出錯,出現錯誤可以參考:https://www.cnblogs.com/cx55887/p/10538748.html
使用命令:
yum update
4、安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
設置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、查看所有倉庫中所有docker版本,並選擇特定版本安裝
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
Installed Packages
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 @docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
我選擇的是最新版本,使用命令安裝docker:
yum install docker-ce-18.06.3.ce-3.el7
等待安裝成功,然后,啟動docker,並設置開機啟動:
systemctl start docker
systemctl enable docker
驗證是否安裝成功,命令行輸入命令: docker version
[root@VM_0_6_centos ~]# docker version Client: Version: 18.06.3-ce API version: 1.38 Go version: go1.10.3 Git commit: d7080c1 Built: Wed Feb 20 02:26:51 2019 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.3-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: d7080c1 Built: Wed Feb 20 02:28:17 2019 OS/Arch: linux/amd64 Experimental: false
6、打開FineUICore_Examples_RazorPages_v6.0.0 源碼,修改vs2019自動生成的Dockerfile,這個原來生成的Dockerfile是不能用的,我試過,傳到docker上去,生成鏡像是運行不了,不曉得什么原因,就是這個Dockerfile:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY ["FineUICore.Examples.RazorPages/FineUICore.Examples.RazorPages.csproj", "FineUICore.Examples.RazorPages/"] RUN dotnet restore "FineUICore.Examples.RazorPages/FineUICore.Examples.RazorPages.csproj" COPY . . WORKDIR "/src/FineUICore.Examples.RazorPages" RUN dotnet build "FineUICore.Examples.RazorPages.csproj" -c Release -o /app FROM build AS publish RUN dotnet publish "FineUICore.Examples.RazorPages.csproj" -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "FineUICore.Examples.RazorPages.dll"]
修改成這樣的:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base ARG source WORKDIR /publish EXPOSE 80 COPY /. /publish ENTRYPOINT ["dotnet", "FineUICore.Examples.RazorPages.dll"]
還要把Dockerfile 的復制到輸出目錄改成:始終復制,保證Dockerfile 會復制到生成目錄
然后發布到文件夾:
把這個發布成功的publish里面的文件上傳到centos的某個文件夾,我是在centos根目錄建了一個叫publish 的文件夾,上傳的時候,可以用寶塔安裝一個ftp服務端,長這樣的:
設置好賬號密碼,本地下載一個ftp客戶端,比如免費的filezilla.exe,很好用,filezilla輸入ip,賬號密碼,上傳publish 中的文件
7、上傳完成之后,還是用docker生成FineUICore基礎版源碼的鏡像,使用命令:
docker build -t myfineui . (注意:最后空格后面有一個.)。
等待生成成功,成功后,查看生成的鏡像
[root@VM_0_6_centos ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE myfineui latest 9535b05e8107 16 hours ago 337MB alibaba-vica-netcore latest 7190d859989b 16 hours ago 189MB microsoft/dotnet 2.1-aspnetcore-runtime 190467cc5405 2 weeks ago 253MB mcr.microsoft.com/dotnet/core/runtime 3.0-buster-slim b525e32f0752 2 weeks ago 189MB portainer/portainer latest 4cda95efb0e4 3 weeks ago 80.6MB
可以看到myfineui已經成功生成
8、運行這個鏡像myfineui :
docker run --name myfineui -d -p 8080:80 myfineui
這個意思是,把鏡像myfineui 運行起來,並且這個新運行起來的鏡像centos容器叫myfineui(第二個),這個容器的端口80,映射到雲服務器centos 的8080端口。一個鏡像可以run無數個容器,這些容器互不干擾,好似c#里面的類,可以new無數個實例。
最后,雲服務器的外網ip加上端口,就可以訪問FineUICore基礎版了:
本文特別鳴謝狗哥!