CentOS7下使用Docker容器化.net Core 2.2

1、使用 yum 安裝(CentOS 7下) 

  Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。linux

  經過 uname -r 命令查看你當前的內核版本web

  

2、安裝 Docker 

  從 2017 年 3 月開始 docker 在原來的基礎上分爲兩個分支版本: Docker CE 和 Docker EE。docker

  Docker CE 即社區免費版,Docker EE 即企業版,強調安全,但需付費使用。centos

  一、移除舊的版本 緩存

複製代碼
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
複製代碼

  二、安裝一些必要的系統工具安全

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

   三、添加軟件源信息bash

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

   四、更新 yum 緩存app

sudo yum makecache fast

   五、安裝 Docker-ce工具

sudo yum -y install docker-ce

   六、啓動 Docker 後臺服務 測試

sudo systemctl start docker

   七、測試運行 hello-world 

[root@localhost /]# docker run hello-world

   

2、Asp.Net Core2.2 web程序

  

  dockerfile是你的應用部署到docker上所必須的配置信息,只是個不帶擴展名的純文本文件而已

  

  設置Makefile屬性【始終複製

  

  Dockerfile內容爲

FROM microsoft/dotnet:2.2-aspnetcore-runtime  #基礎鏡像爲dotnetcore
MAINTAINER demo                    #做者

LABEL description="this is a test website"  #描述
LABEL version="1.0"                 #描述

WORKDIR /app                    #工做目錄
COPY . .                      #將當前目錄下的文件,複製到WORKDIR目錄
EXPOSE 8888                    #容器暴漏8888端口,與上一步設置的端口一致
ENTRYPOINT ["dotnet","demo.dll"]      #運行容器的命令

  修改Program.cs文件

namespace demo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://*:8888")
                .UseStartup<Startup>();
    }
}

  發佈,文件系統

  默認位置 

demo\bin\Release\netcoreapp2.2\publish

 

  

3、構建鏡像

  一、切換到發佈目錄  

[root@localhost publish]

   二、修改Makefile文件

  

  指定容器對外暴露端口80。注意,COPY .後面有空格,表示是當前位置,意思是從當前位置複製文件到/publish目錄下

  三、根據當前目錄下dockerfile配置文件,進行打包  

[root@localhost publish]# docker build -t demo .

   

  四、查看咱們打包好的鏡像。

[root@localhost publish]# docker images

  

4、運行docker容器

[root@localhost publish]# docker run -d -p 8888:8888 demo

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

   -d命令,容器就會一直運行,即便關掉終端窗口

  檢驗docker容器是否運行成功

  

5、測試

  本機要輸Centos的IP

  

  Centos內訪問localhost就能夠了

  

說明

  一、配置docker開機啓動

systemctl  enable docker

   二、確認容器有在運行

[root@localhost /]# docker ps

   

  CONTAINER ID:容器ID

  NAMES:自動分配的容器名稱

  在容器內使用docker logs命令,查看容器內的標準輸出

   三、開始/中止容器

[root@localhost /]# docker start/stop  容器id或者容器名

   四、重啓docker服務,遇到此類錯誤

  

  緣由是docker服務掛掉了 

systemctl restart docker
相關文章
相關標籤/搜索