将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地址:

 

这样一个简单的部署过程就完成了。