.NetCore 發布到 Centos docker


     【搭建環境】

     系統:CentOS 7.0    容器:Docker 1.13.1    .Net Core 版本:.NET Core 2.2     工具:putty、filezilla 等.

一、安裝 docker

1. 安裝 docker

    yum install docker            ps: 更新 docker 用 yum update 

2. 啟動 docker 服務

    systemctl  start docker.service 

3. 配置開機啟動

    systemctl enable docker.service 

    4. 配置 docker 加速器

      配置 docker 加速最快的方法直接修改/etc/docker/daemon.json 下的配置信息為:      

          { 
             "registry-mirrors": ["https://d8b3zdiw.mirror.aliyuncs.com"] 
           }                

5. 在終端重啟 docker 服務      

        sudo systemctl daemon-reload 
        sudo systemctl restart docker     

二、部署.NetCore 應用到 Docker

1. 新建一個 ASP.NET Core 2.2 項目,在 Windows 下發布運行成功

2. 添加 docker 支持,選擇 Linux(或在添加項目時勾選啟用docker支持)

3.編寫DockerFile,並設置文件屬性:始終復制    

        FROM microsoft/dotnet:2.2-aspnetcore-runtime    
        COPY  . /apiweb    
        WORKDIR /apiweb
        EXPOSE 80 
        ENTRYPOINT ["dotnet", "ApiWeb.dll"]    

 

      構建Dockerfile 注釋
      ① FROM指定基礎鏡像,這里統一使用microsoft/dotnet(:tag)Tag是一個標簽,指定一個版本或者最近的版本(即latest)
      ② COPY拷貝發布文件到本地的/ apiweb /的路徑下,供容器使用
      ③ WORKDIR 指定容器的工作目錄
      ④ EXPOSE 指定容器的端口(注意,不是服務器訪問到程序的端口) 
      ⑤ ENTRYPOINT 執行交互命令,使用CMD亦可賽艇,但是注意兩者都是執行完整命令的話,是會相互覆蓋的,只有最后一個有效。

4.發布項目

5.將Dockerfile文件復制到發布成功的目錄,並利用ftp工具全部上傳到服務器

  

6.構建Docker鏡像

①.進入到發布文件目錄(Dockerfile文件所在目錄)

          cd  /home/wwwroot/apiweb

②. 拉取基礎鏡像

            docker pull microsoft/dotnet:2.2-aspnetcore-runtime 

③. 執行命令創建鏡像 ,注意最后面有個.

            docker build -t apiweb .  

apiweb是創建鏡像的名稱,這個命令會根據當前目錄下dockerfile配置文件,進行打包。運行查看鏡像 docker images

④. 創建容器,其中前一個apiweb是容器名 后一個apiweb是上一步的鏡像名。

--name:指定容器名稱;

-p:指定容器端口,是進行宿主和容器之間端口的映射,(-p 宿主端口:容器端口);

-d:指定容器后台運行,這樣容器就會一直運行,即使關掉終端窗口。

            docker run --name=apiweb -p 80:80 -d  apiweb
            或者
            docker run --name=apiweb -p 宿主ip:5000:80 -d  apiweb

出現一長串字符串,便是表示容器運行成功。

7.驗證訪問

直接通過瀏覽器訪問即可(宿主ip+端口號)。

 

            Docker常用命令:
            docker -v / version /info         查看docker版本信息
            docker images                     查看所有鏡像
            docker ps                         查看所有正在運行的容器
            docker ps -a                      查看所有容器
            docker rmi+鏡像ID                 刪除某個鏡像
            docker stop+容器ID                停止某個容器
            docker start+容器ID               啟動某個容器
            docker restart+容器ID             重啟某個容器
            docker rm+容器ID                  刪除某個容器
            docker rmi $(docker images -q)    刪除所有鏡像
            docker rm $(docker ps -a -q)      刪除所有容器
            docker logs +容器ID               查看容器日志信息找原因
            netstat -tanlp                    查看端口
            kill+端口                         殺死某個端口
            docker search mysql               鏡像檢索
            docker pull mysql                 鏡像下載
            …

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM