.Net6(4)MinimalAPI Docker容器化体验
序言
Docker+Centos7部署
1.新建WebApi项目
项目引入了Dockerfile ,不启用docker容器调试
Dockerfile始终复制
对Dockerfire 进行修改
2.发布项目
D:\Net\Git\CommonProjectSolution\CommonProjectSolution\MinimalAPI.Net6.WebApi\bin\Release\net6.0\publish
https://localhost:5001/WeatherForecast
改好后进行发布:发布完成后上传到服务器Dockerfire文件所在的目录中
3.创建容器
使用命令运行该Dockerfire文件创建容器
删除:docker rm -f minimalapi
命令:docker build -t minimalapi .
数分解:
- -t ---指定镜像名称
- 命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件
这个命令需要注意的是 镜像名称 不要使用大写 镜像名称后的 “点”不要忽略了
创建容器:
命令:docker run --name minimalapi -d -p 5000:80 minimalapi
参数说明
-
-d ,表示在后台以守护态(daemonized)形式运行容器
-
-p 外部端口与内部容器端口映射。
-
--name 指定容器的名称。当然可以不指定,默认会为我们创建
4.在CentOS7上可以直接访问,但是在宿主机上无法访问。
5.解决在宿主机上无法访问的问题
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决方式:
第一步:在宿主机上执行echo “net.ipv4.ip_forward=1” >>/usr/lib/sysctl.d/00-system.conf
[root@VM-16-14-centos ~]# echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf [root@VM-16-14-centos ~]# cat /usr/lib/sysctl.d/00-system.conf # Kernel sysctl configuration file # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Disable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 net.ipv4.ip_forward=1
第二步:重启network和docker服务
[root@localhost /]# systemctl restart network && systemctl restart docker
第三步:验证是否成功
可见完美解决问题。
http://192.168.229.133:5000/weatherforecast
运行容器
sudo docker run minimalapi
docker start minimalapi
docker logs minimalapi
查看容器的详细信息
docker inspect minimalapi
查看结果:docker ps -a
docker images
docker ps -a
http://192.168.229.133:5000/weatherforecast
curl http://localhost:5000
这里如果docker run失败后再次运行会提示名称已存在,可以使用以下命令来删除容器
查看防火墙
firewall-cmd --state
sudo systemctl start firewalld
sudo systemctl stop firewalld
使用docker搭建web服务器,提示无法访问此网站,怎么解决
1、查看端口是否加入seLinux允许的http端口
semanage port -l | grep http_port_t
2、添加端口
semanage port -a -t http_port_t -p tcp 8090
防火墙关了没
systemctl stop firewalld.service 关闭运行的防火墙
使用命令systemctl status firewalld.service 查看防火墙状态
disavtive(dead)的字样,说明防火墙已经关闭
systemctl disable firewalld.service,开机禁止防火墙服务器
systemctl enable firewalld.service,开机启动防火墙服务器
资料
Docker之WARNING: IPv4 forwarding is disabled. Networking will not work.
https://blog.csdn.net/wo4641771/article/details/106312065/
https://www.cnblogs.com/kwzblog/p/13533907.html
docker logs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!