赞
踩
发布.Net应用有很多种方式,下面列举三种发布方式:
右键工程,选择“发布”,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,我这里用的是linux 64位系统,在文件发布选择项中选择“生成单个文件”,那么发布后生成的就是包含所有环境和依赖项的独立程序,在目标系统中可直接运行改文件。
在发布选项中,部署模式选择“独立”,目标运行时选择自己想要部署到的系统,在在文件发布选择项中不选择“生成单个文件”,则是跨平台发布。
右键工程,选择“添加”,然后选择“Docker支持”,选择目标平台和Dockerfile,配置Dockerfile,发布Dockerfile,使用windows的Powershell打包docker镜像(安装Docker Desktop)。
添加Dockerfile
配置Dokcerfile
Docker镜像打包
Windows打包镜像步骤:
- #打开Powershell进入Dockerfile工作目录
- cd .../publish
-
- #打包Docker镜像
- docker build --tag demo:1.0 .
-
- #镜像导出
- docker save -o d:\demo.tar demo:1.0
-
- #将导出镜像复制到远程linux服务器目录
-
- #linux Docker镜像导入
- docker load -i /api/demo/demo.tar
-
- #Docker查询,镜像是否导入
- docker images
-
- #生成docker容器并启动
- docker run -d -p 9000:5000 --name demo demo:1.0
部署和运行.Net应用有也很多种方式,下面列举:
将发布的.NET应用程序文件复制到目标平台目录,首先将运行文件赋权,然后输入命令直接运行程序。
- chmod +x demo #给文件赋权
- ./demo #直接运行程序
通过在/etc/systemd/system/中创建一个服务,并添加配置,然后使能服务,运行服务。查询dotnet安装位置命令
- #创建服务
- cd /etc/systemd/system/
- vim api.service
-
- #添加服务配置
- [Unit]
- Description=Example .NET Web API App running on Ubuntu
-
- [Service]
- WorkingDirectory=/api/ubuntu
- ExecStart=/usr/bin/dotnet /api/ubuntu/ProgramShow.WebApi.dll
- Restart=always
- # Restart service after 10 seconds if the dotnet service crashes:
- RestartSec=10
- KillSignal=SIGINT
- SyslogIdentifier=dotnet-api
- User=www-data
- Environment=ASPNETCORE_ENVIRONMENT=Production
- Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
-
- [Install]
- WantedBy=multi-user.target
-
- #使能服务
- systemctl enable api.service
-
- #运行服务
- systemctl start api.service
注意:ExecStart=/usr/bin/dotnet为dotnet安装文件,查询dootnet安装位置,使用命令:
- whereis dotnet #查询dotnet安装位置
- /usr/bin/dotnet /usr/lib/dotnet /etc/dotnet #查询结果
WorkingDirectory=/api/ubuntu为应用程序路径
Docker导入制作好的服务镜像,创建容器并启动容器。
- #linux Docker镜像导入
- docker load -i /api/demo/demo.tar
-
- #Docker查询,镜像是否导入
- docker images
-
- #生成docker容器并启动
- docker run -d -p 9000:5000 --name demo demo:1.0
使用Nginx反向代理,能够使用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址。如果不适用方向代理,外部电脑可能访问改服务。
- #安装完nginx后进入sites-available目录
- cd /etc/nginx/sites-available/
-
- #创建nginx服务
- vim api
-
- #配置服务
- server {
- listen 9000;
- location / {
- proxy_pass http://localhost:5000;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection keep-alive;
- proxy_set_header Host $host;
- proxy_cache_bypass $http_upgrade;
- }
- }
-
- #查看服务
- ln -s ../sites-available/api ./
-
- #重启ngnix服务
- nginx -s reload
参考:
.NETCore项目在Windows下构建Docker镜像并本地导出分发到CentOS系统下_.net程序打包成docker镜像-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。