利用docker发布.net core项目

  • 首先我们用的服务器是.net core 默认的服务 kestrel,.net core 的版本采用.net core 2.0.0。

         public static IWebHost BuildWebHost(string[] args) =>
         WebHost.CreateDefaultBuilder(args).UseKestrel()
         .UseUrls("http://*:80")
             .UseStartup()
             .Build();
    
    这里要注意 URL 的问题,加星号表示能够通过任何的 ip 进行访问,服务器监听 0.0.0.0:80 端口,实现外网访问
  • 第二步 构建镜像
    • 首先要安装.net core 2.0.0-sdk
    • dotnet restore 是将下载 nuget 依赖包
    • dotnet run 查看项目是否能够运行
    • dotnet publish 发布项目
    • 最后一步就是构建进行了 docker build -t 项目,在这步执行之前还需在项目的根目录创建一个Dockerfile文件,利用改文件来构建容器镜像。
    FROM microsoft/dotnet:2.0.0-sdk
    COPY bin/Debug/netcoreapp2.0/publish/ /app/
    WORKDIR /app
    ENTRYPOINT ["dotnet","/app/***.dll"]   //***表示项目名称
  • 第三步 开启一个容器 docker run 命令
    • docker run -d –name yourprjname -p 宿主端口:容器端口 镜像:tag
  • 其中还有一些常用的命令
    • docker pull [] 从 docker hub 拉取镜像
    • docker stop/start [id] 开启与关闭容器
    • doker exec -it 【id】bash 进入容器
    • docker ps -a 查看所有的容器 包括关闭的
    • docker images 查看所有镜像/docker image ls
    • docker rm 删除容器
    • docker rmi 删除镜像(在删除镜像之前需要将容器停止删除)

你可能感兴趣的:(.net,core)