Centos下安装Docker,并在Docker中运行.net core web api项目

Centos下安装Docker

  • 切换成root用户sudo su -
  • 运行命令yum -y install docker安装docker
  • 运行命令service docker start启动docker
  • 运行命令docker run hello-world 测试运行hello-world
  • 修改docker的镜像地址 vim /etc/docker.daemon.json 添加内容
{  
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

Centos下面安装dotnet core sdk并创建.net core webapi项目

  • centos下安装dotnet core sdk,命令查看官网,安装完成后可以通过dotnet --version来查看 dotnet core sdk版本及它是否安装成功。
  • 创建.net core webapi测试项目
#进入/usr/src
cd /usr/src
#创建webapi文件夹
mkdir webapi
#进入webapi文件夹
cd webapi
#创建webapi项目,项目名称就是文件夹名字.也可以用--name XXX 来指定名称
dotnet new webapi
#启动webapi项目,启动成功之后浏览器中通过http://localhost:5000/api/values就可以访问webapi接口了。
[root@localhost webapi]# dotnet run
Hosting environment: Production
Content root path: /usr/src/webapi
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
  • 在webapi的根目录创建Dockerfile,根据dockerfile构建docker镜像.运行命令docker build -t myapiimage .,构建成功之后查看docker images可以查看这个myapiimage镜像
#基于dotnet:latest构建
FROM microsoft/dotnet:latest
#把/app作为工作目录,然后把所有代码得到到/app下
WORKDIR /app
COPY ./ .
#暴露80端口
ENV ASPNETCORE_URLS http://+:80
EXPOSE 80
#还原包
RUN dotnet restore
#在容器中net core api
ENTRYPOINT ["dotnet","run"]
  • 在docker中运行corewebapi项目docker run -p 8080:80 myapiimage。用浏览器访问http://localhost:8080/api/values就可以访问docker中的这个corewebapi项目了.它的内容和直接访问http://localhost:5000是一样的
[root@localhost webapi]# docker run -p 8080:80 myapiimage
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {d1d8c7b4-6057-4b41-ab80-4f038b6fd195} may be persisted to storage in unencrypted form.
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.

参考资料

在Docker容器上运行.Net Core API

原文地址:https://www.cnblogs.com/Yang2012/p/8483716.html