.Net 6 WebApi 项目部署到 Linux 系统上的 Docker 容器
1.创建一个基础的WebApi项目
注意:因为发布时候,Dockerfile文件必须和解决方案.cspro文件放在同级,所以建议勾上这个,当时遇到这个问题,导致打包镜像时找不到.cspro文件,搞了好久
点击创建,项目基础框架是这样的:
在Program中能够看到 MinimalApi 自带的示例:
切换到项目配置运行,能够请求到数据:
2.将项目文件用Xftp拷贝到Linux系统中,我这里用的是VMWare虚拟机的CentOS7系统,
拷贝到root目录下,自建一个发布项目的文件夹(这里我创建的是DockerPublish文件夹)里面
3、输入命令,进入到项目文件夹里面:
系统需装好docker,安装好常用的命令、配置好环境。
输入命令:docker images -查看当前的全部镜像:
4.通过 Dockerfile 文件 ,将项目打包成镜像:
命令: docker build -t [新建的镜像名]:[指定的版本号] -f Dockerfile .
注意:Dockerfile 后面的 "." 不可少!
输入打包镜像的命令之后,开始打包,看到如下信息表示镜像创建成功:
5. 通过镜像构建容器实例:
命令:docker run --name mywebapi -d -p 5566:80 net6webapi:1.0
命令格式:docker run --name [自定义容器名] -d -p [自定义对外端口]:[Dockerfile中指定的端口,不修改的话,一般都是80] [镜像名]:[版本号]
容器创建好之后,通过命令 :docker ps (查看正在运行的容器) , docker ps -a (查看全部容器)
docker ps 能够看到刚才创建的容器,就成功了:
接下来在电脑上,通过虚拟机的地址访问mywebapi,可以用 ifconfig 命令 查看虚拟机地址,
如果你和我一样也用的 Xshell7 连接工具,那么左下角可以直接看到虚拟机的地址:
浏览器输入地址 : 192.168.146.129:5566/weatherforecast 能够访问到数据,就成功了!
5566端口即为第5步,镜像实例化成容器时,指定的容器端口
注意:如果访问不到,但是 docker ps 可以看到容器,说明容器运行了,但是镜像有问题,会有报错,
通过命令:docker logs [容器名] 可以看到运行的容器,报错日志
6.通过一个镜像,构建多个容器实例,给不同端口,拿到一个镜像,哪儿都能跑起来,跑同一套代码
如果部署到服务器上,别人拿到我的镜像,也能跑我的代码,这就是docker的优势,一个镜像就是整个程序。
在实际项目开发中,会将同一个镜像的多个容器实例,使用 Nginx 负载均衡配置,提高程序的性能。
.Net 6 WebApi 项目部署到 Linux 系统上的 Docker 容器的更多相关文章
- 把我的Java项目部署到Linux系统
以前,还未毕业,凭借自己三脚猫的功夫,只会在Windows环境中使用tomcat容器把项目跑起来. 以前的操作是,利用Eclipse把项目导出成War包,放到tomcat的webApp文件夹中,鼠标点 ...
- [经验] Java Web 项目怎么部署到 Linux 系统上
废话少说, 直奔主题 第一步: 将 web 项目打成 war 包 1: 打开项目的 pom.xml 文件 如果是迭代后的项目, 记得修改项目的版本号, 这里我的是第二版所有就把 1 改成了 2 2: ...
- 案例 (一)如何把python项目部署到linux服务器上
一.背景 用Python写了个脚本,需要部署到Linux环境的服务器上,由于服务器linux系统(centos,redhat等)自带的是python2,现在的python萌新都是从python3开 ...
- 把 web 项目部署到 Linux 服务器上
1.打开 eclipse,在已经完成的 web 项目上面点击右键,选择 export,然后选择导出成 war 包. 以部署 SMBMS 项目为例 2.项目打包成 war ,选择项目导出到的位置. ...
- Openfire调整成自己的IM部署到LInux系统上
部署自己的IM到Linux系统下:需要生成相关jar包再部署 1.在myeclipse上把openfire源代码加在加载进来,做相应调整后,运行测试没问题 2. 编译admin-jsp.jar(所有 ...
- mac系统上访问docker容器中的ip配置
使用 mac系统,发现docker没有 docker0网桥,无法直接在宿主机上 访问 容器的ip, 在测试的时候有这种需求,而不是通过-p的方式,可以参考下面的连接,主要就是 修改 setting.j ...
- 项目如何部署在linux系统上
前面已经安装好centos的系统,网络配置,以及部署的环境已成功啦... 下面记录的是如何部署一个项目 四个步骤: (1)放war包 (2)执行数据库脚本 (3)修改数据库的配置文件 (4)重启tom ...
- laravel 博客项目部署到Linux系统后报错 权限都设置为777,仍然报错没有权限
阿里工程师最后给出解决方案.
- .net core 部署在Linux系统上运行的环境搭建总结
安装Linux用的是腾讯云的centos7.5,需要安装有环境有mysql5.7 .netcore2.1 nginx1.14 1.首先是mysql的安装 我用的链接工具是putty,首先root登入 ...
随机推荐
- Visual Studio App Center 中的 Bug 跟踪服务
我在之前的一篇文章 <使用 Visual Studio App Center 持续监视应用使用情况和问题> 中介绍了 App Center 的基本功能及使用入门,其中 诊断 可以自动手机用 ...
- xacro 语法总结
xacro是为了解决在编写urdf文件过程中,出现的标签内容重复,但又不得不去写.一些值的计算有依赖的问题.为了和urdf文件区分,我们定义的模型文件名后缀为.xacro. 从功能的角度来说,xacr ...
- asp.net 可视化操作(二)——Sql数据库连接及简单查询功能的实现
目录 连接数据库 利用repeater控件实现数据显示 查询功能 页面CSS美化 数据插入.更新-- 连接数据库 添加test.aspx 添加控件SqlDataSource,选择配置数据源 选择新建连 ...
- 解决canvas画图模糊的问题
canvas 画图经常发现他是模糊的.解决这个问题主要从两个方面下手. 改变canvas渲染的像素情况:画1像素的线条看起来模糊不清,好像更宽的样子. 解决方案 var ctx = canvas.ge ...
- Javascript Symbol 隐匿的未来之星
ES6中基础类型增加到了7种,比上一个版本多了一个Symbol,貌似出现了很长时间,但却因没有使用场景,一直当作一个概念层来理解它,我想,用它的最好的方式,还是要主动的去深入了解它吧,所以我从基础部分 ...
- Android Studio连接SQLite数据库与SQLite Studio实时同步的实现
最近学习用到了android开发连接数据库这一块,发现连接成功后,都要先访问安卓项目的数据库路径data/data/项目/databases,然后把对应的db文件拷出来,再在SQLite的可视化工具中 ...
- AMS分析 -- 启动过程
一. AMS简介 AmS可以说是Android上层系统最核心的模块之一,其主要完成管理应用进程的生命周期以及进程的Activity,Service,Broadcast和Provider等. 从系统运行 ...
- FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言
之前文章分享FastAPI(七十二)实战开发<在线课程学习系统>接口开发-- 留言列表开发,这次我们分享如何回复留言 按照惯例,我们还是去分析这里面的逻辑. 1.判断用户是否登录 2.用户 ...
- 安卓电池健康查看软件AccuBattery 分享
一.天下苦秦久矣 说实话,我是小米的忠实粉丝(雷总打钱),手里目前是红米k30pro标准版, 室友中有用华为也有苹果的,据我所知苹果系统是可以看到电池健康的,但是安卓却不行, 所以推荐大家一个安卓软件 ...
- 自学java如何快速地达到工作的要求?
自学java如何快速地达到工作的要求,是很多初学者都比较关心的问题,对于初学者来说,盲目自学不但不能快速入门,还会浪费大量的时间. 今天知了堂就来分享自学Java如何快速达到找工作的要求. 1.自学J ...