.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登入 ...
随机推荐
- 学习webpack前的准备工作
前言 由于vue和react的流行,webpack这个模块化打包工具也已经成为热门.作为前端工程师这个需要不断更新自己技术库的职业,真的需要潜下心来学习一下. 准备工作(针对mac用户) 安装 hom ...
- 你可能不知道的 css 内容块
position 我们都知道元素都拥有 position 这个css属性,先来看看他的基本定义和可用值. 定义 position 决定了元素位置是如何被渲染的 可用值 值 描述 static 默认值, ...
- 前端每日实战:89# 视频演示如何用 CSS 和 D3 创作旋臂粒子动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xJrOqd 可交互视频 此视频是可 ...
- JDK卸载和彻底删除
第一步:点击"控制面板". 第二步:点击"卸载程序". 第三步:进入到"程序和功能"界面,找到jdk的两个程序:①java 8 update ...
- Centos搭建 LAMP 服务器教程
搭建 LAMP 服务 搭建 MySQL 数据库 安装 MySQL 使用 yum 安装 MySQL: yum install mysql-server -y 安装完成后,启动 MySQL 服务: ser ...
- css3属性之filter初探
filter属性是css不常用的一个属性,但是用好了可以给网页增色不少!ps: IE不支持此属性: img { -webkit-filter: grayscale(100%); /* Chrome, ...
- SpringMVC-开启静态资源访问权限
1.配置 <mvc:resources mapping="/js/**" location="/js/"/> mapping:代表js目录下的所有文 ...
- Linux下安装Typora
系统:Ubuntu16.0 下载链接:https://www.typora.io/#linux 参考链接:https://www.cnblogs.com/wenkangzero/p/13202415. ...
- STL空间分配器源码分析(三)pool_allocator
一.摘要 pool_allocator是一种基于单锁内存池的空间分配器,其内部采用内存池思想,通过构建16个空闲内存块队列,来进行内存的申请和回收处理.每个空闲队列管理的内存块大小固定,且均为8的倍数 ...
- css 让一行文字 字与字的隔开一点
效果: css: letter-spacing: 5rpx; 我这是小程序. 单位自带.px rem em这些,随自己需要带.
