Linux下基于Docker部署.Net Core web api项目

Docker的好处我就不说啦,问问度娘就知道了??

在动手之前我假设您已经安装了Docker(Linux环境)

准备好一个web api项目,如果您还不知道怎样用vs建web api项目,请看此篇博客

https://www.cnblogs.com/zhangnever/p/11915509.html

如果还没安装Docker请先别急,移步至此地址安装

https://www.runoob.com/docker/centos-docker-install.html

在这里先说几条Docker的命令,因为一会儿会用到

1.docker ps -a  --查看所有的容器
2.docker ps  --查看正在运行的容器
3.docker images  --查看所有的镜像
4.docker logs 容器id  --查看指定容器的日志
5.docker pull 镜像名 --拉取指定镜像

首先在Program类添加如下代码,UseUrls方法设置ip和端口号(可不和我一样),这样的话发布之后外网就可对其进行访问。一定要加上这句代码!!!

.UseUrls("http://*:9659")

Linux下基于Docker部署.Net Core web api项目

 然后右键-属性发布项目

Linux下基于Docker部署.Net Core web api项目

 进入发布后的文件夹,将发布后的所有文件copy出来,上传至Linux服务器,我用的是Xftp,在此之前在tmp目录下新建一个文件夹(名称随意)

Linux下基于Docker部署.Net Core web api项目

 然后将xml文件copy进来,不然发布会报错。xml文件找不到

Linux下基于Docker部署.Net Core web api项目

 打开Linux命令行终端工具,我用的是Xshell.切换到项目根目录下,Vim创建Dockerfile文件,当然你也可以右键新建文件也行

Linux下基于Docker部署.Net Core web api项目

Linux下基于Docker部署.Net Core web api项目

 写入这四句命令

FROM microsoft/dotnet:2.2-aspnetcore-runtime

WORKDIR /app

EXPOSE 9659

COPY . . 

CMD ["dotnet", "CoreFrame.dll"

Linux下基于Docker部署.Net Core web api项目

 然后拉取镜像,我这是.net core 2.2的项目,依据你的项目版本来

docker pull microsoft/dotnet:2.2-aspnetcore-runtime

我这边已经拉取过了,所以会提示我,已经存在最新的microsoft/dotnet:2.2-aspnetcore-runtime,你要稍微等个几分钟...

Linux下基于Docker部署.Net Core web api项目

拉取完成之后你可以用docker images命令看看有没有这个镜像

[root@instance-1epqf1sp core]# docker images
REPOSITORY                             TAG                      IMAGE ID            CREATED             SIZE
docker.io/microsoft/dotnet             2.2-aspnetcore-runtime   594143f47344        2 weeks ago         261 MB

接下来执行下面这条命令,创建我们的项目镜像,"."代表使用当前目录下的Dockerfile创建镜像

docker build -t apiproject .

Linux下基于Docker部署.Net Core web api项目

 再使用docker images命令看看是否创建

[root@instance-1epqf1sp core]# docker images
REPOSITORY                             TAG                      IMAGE ID            CREATED              SIZE
apiproject                             latest                   f0036423060a        About a minute ago   301 MB
docker.io/microsoft/dotnet             2.2-aspnetcore-runtime   594143f47344        2 weeks ago          261 MB

无误后执行下面这条命令,启动容器,成功之后会有一长串字符

docker run -d -p 9659:9659 --name corewebapi apiproject
--corewebapi是容器名称
--apiproject是依赖的镜像

Linux下基于Docker部署.Net Core web api项目

 查看运行的容器

Linux下基于Docker部署.Net Core web api项目

 浏览器中就可以打开swagger文档了

Linux下基于Docker部署.Net Core web api项目

 如果容器没有运行的话,要查看错误日志,看看报的什么错,再解决。如果你按照我写的步骤来的话应该不会报错。??

Linux下基于Docker部署.Net Core web api项目

 

 晚安!??

 

 

 

 

 

 

 

 

 

 

 

 

Linux下基于Docker部署.Net Core web api项目

上一篇:Spark算子--coalesce和repartition


下一篇:自动化测试题目某旅游网站题目