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的命令,因为一会儿会用到

.docker ps -a  --.docker ps  --.docker images  --.docker logs 容器id  --查看指定容器的日志
5.docker pull 镜像名  --拉取指定镜像

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

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

 然后右键-属性发布项目

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

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

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

 写入这四句命令

复制代码

FROM microsoft/dotnet:2.2-aspnetcore-runtime

WORKDIR /app

EXPOSE 9659COPY . . 

CMD ["dotnet", "CoreFrame.dll"]

复制代码

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

docker pull microsoft/dotnet:2.2-aspnetcore-runtime

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

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

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

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

docker build -t apiproject .

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

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

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

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

 查看运行的容器

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

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

 

 晚安!🌙