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")
然后右键-属性发布项目
进入发布后的文件夹,将发布后的所有文件copy出来,上传至Linux服务器,我用的是Xftp,在此之前在tmp目录下新建一个文件夹(名称随意)
然后将xml文件copy进来,不然发布会报错。xml文件找不到
打开Linux命令行终端工具,我用的是Xshell.切换到项目根目录下,Vim创建Dockerfile文件,当然你也可以右键新建文件也行
写入这四句命令
FROM microsoft/dotnet:2.2-aspnetcore-runtime
WORKDIR /app
EXPOSE 9659
COPY . .
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 SIZE
docker.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 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是依赖的镜像
查看运行的容器
浏览器中就可以打开swagger文档了
如果容器没有运行的话,要查看错误日志,看看报的什么错,再解决。如果你按照我写的步骤来的话应该不会报错。????
原文地址:
https://www.cnblogs.com/zhangnever/p/11961297.html
End
相关推荐:
点击【在看】与好友一起分享