FineUICore基礎版部署到docker實戰

FineUI用了好多年,最近出了FineUICore版本,一直沒時間是試一下docker,前幾天買了一個騰訊雲服務器,1核2g,裝了centos7.6,開始的時候主要是整個我的博客,在騰訊雲安裝了寶塔,寶塔linux面板,web界面一鍵管理linux服務器,非常方便,沒有linux基礎的也能夠玩linux。html

  1. 拋開寶塔,仍是用騰訊雲的SSH來登錄centos吧:

登錄成功,若是顯示這種:python

說明22端口沒有 開啓,須要到騰訊雲安全組開啓linux

編輯,把拒絕改爲容許並保存。web

 

二、先保證是root登錄,不是的要切換成root,敲命令 uname -a,查看內核版本:docker

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也沒有問題c#

 

三、把yum包更新到最新,若是你事前 把centos 的python2.7更新到最新版本python3.8,那麼這個時候更新yum 後會出錯,出現錯誤能夠參考:http://www.javashuo.com/article/p-pfleklqr-bc.htmlcentos

使用命令:安全

  

yum update

  

四、安裝須要的軟件包服務器

 

yum install -y yum-utils device-mapper-persistent-data lvm2

    設置yum源app

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

五、查看全部倉庫中全部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

六、打開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 中的文件

 

七、上傳完成以後,仍是用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已經成功生成

八、運行這個鏡像myfineui :

docker run --name myfineui  -d -p 8080:80  myfineui 

這個意思是,把鏡像myfineui 運行起來,而且這個新運行起來的鏡像centos容器叫myfineui(第二個),這個容器的端口80,映射到雲服務器centos 的8080端口。一個鏡像能夠run無數個容器,這些容器互不干擾,好似c#裏面的類,能夠new無數個實例。

最後,雲服務器的外網ip加上端口,就能夠訪問FineUICore基礎版了:

 

本文特別鳴謝狗哥!

相關文章
相關標籤/搜索