一步一步实现 .NET 8 部署到 Docker

一、前言

本文仅针对操作系统为 CentOS 8 的环境下部署方法进行讲述。如有需要,后续将在其他文章中进行其他系统下的部署方式讲解。

二、准备工作

  1. 确保服务器已安装 docker。
    可以通过命令 docker -v 进行检查,如出现下图结果则表示已安装。
  2. 代码准备
    • 在代码项目名称上右键,依次选择 添加 - Docker 支持...,弹出容器基架选项界面,如下图:

    • 目标 OS 选择 Linux容器生成类型 选择 Dockerfile,点击 确定按钮

    • 此时项目中会增加一个名为 Dockerfile 的配置文件。

      内容大致如下:

    • 打开项目 目录 PropertieslaunchSettings.json 文件

      将会看到新增的如下内容:

    • 需要注意的是Dockerfile文件中的 EXPOSE 后方的端口需要与 Properties\launchSettings.json 文件中的 ASPNETCORE_HTTP_PORTS 指定端端口一致,该端口在部署到 docker 后,将作为容器端口使用。

三、上传项目源码到服务器

上传代码到服务器的方式有很多,下面仅列举手动上传和从 git 克隆代码。

  • 手动上传文件
    利用工具 WinSCP 工具连接服务器后,上传文件。
  • 从 git 克隆代码
    进入服务器相关目录下,利用 git 命令 git clone [url] 进行代码克隆到服务器。

四、开始部署

  1. Dockerfile 文件移动到父级目录中。

  2. 打开命令行窗口 ,利用 cd [路径] 进入代码文件所在目录。

  3. 输入命令 ls 查看目录下文件,如下所示能看到 Dockerfile 文件

  4. 创建镜像

    命令:docker build -t 镜像名称:版本号 .

    参数:** -t 或 --tag **:用于指定镜像的名称和标签

    示例:docker build -t swaggersimpledocker:1.0 .

    等待操作完成后,可通过命令 docker images 查看 docker 中已存在的镜像

  5. 创建容器

    命令:docker run --name=容器名称 -p主机(宿主)端口:容器端口 -d 镜像名称:1.0

    参数:--name :容器名称;-p :指定端口映射,格式为:主机(宿主)端口:容器端口;-d :后台运行容器,并返回容器ID

    示例:docker run --name=swaggersimple -p 8080:8080 -d swaggersimple:1.0

  6. 查看容器信息

    输入命令: docker ps -a ,可查看如下结果:

    说明:状态(STATUS) 为 Up 则表示容器状态为 运行中Exited 表示 已停止

  7. 检查接口是否可以正常访问

    输入命令:curl http://192.168.16.128:8080/api/Test/appinfo查看是否存在返回结果。

结束语

docker 容器部署已作为当前主流部署方式,欢迎大家一起交流学习。 QQ:2289480980

相关推荐
小杨的全栈之路5 小时前
生产级实践:在 Docker 中安全导入自签名证书,保障 Spring Boot 应用通信安全
docker·https
计算机小手8 小时前
推荐一个 GitHub 开源项目信息卡片生成工具,支持Docker快速部署和API调用
经验分享·docker·github·开源软件
饭来_9 小时前
通过 SSH 远程连接 docker 容器
vscode·docker·ssh
kura_tsuki10 小时前
[Docker集群] Docker 容器入门
运维·docker·容器
开始学AI10 小时前
【Docker技术】docker-compose.yml与Dockerfile解析
java·docker·eureka
一水鉴天1 天前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
飞快的蜗牛1 天前
利用linux系统自带的cron 定时备份数据库,不需要写代码了
java·docker
香吧香1 天前
Docker Registry 使用总结
docker
赵渝强老师1 天前
【赵渝强老师】Docker容器的资源管理机制
linux·docker·容器·kubernetes
haicome1 天前
deepseek部署
docker·ragflow·deepseek 部署