将asp.net core部署到docker中,以容器的方式运行
netcore3.1 dockerfile 生成镜像 并 部署到 linux 系统
注意:先将web api需要对外暴露的端口添加到防火墙
如果开启了防火墙的话,添加到防火墙:
然后在云服务的防火墙规则处,开放此端口
firewalld 防火墙开放端口
查看firewalld状态:systemctl status firewalld
开启firewalld:systemctl start firewalld
如果启动报错:Failed to start firewalld.service: Unit is masked.
是因为被锁定了,取消firewalld的锁定:systemctl unmask firewalld,再启动即可。
开放某个端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入:firewall-cmd --reload
然后再基于镜像,创建容器。
相关的命令:
基于项目镜像:
docker build -f Dockerfile -t webapp:1.0 .
基于镜像,创建容器:
docker run -d -p 5008:5008 --name webapitest c344dc437251
重启docker引擎 ,可以解决此问题.
systemctl restart docker
在尝试重新创建该项目容器或者重启容器
解决方案:
docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint quirky_allen
尝试通过公网IP:端口号,来访问下web api swagger地址:
这样一个简单的部署过程就完成了。