Visual Studio发布 Docker 镜像的实现步骤

 更新时间:2026年04月29日 09:25:33   作者:新标签页  
本文详细指导如何在Visual Studio中为ASP.NET Core WebAPI项目集成Docker支持,包括配置步骤、编写Dockerfile、测试代码、launchSettings.json配置及docker-compose.yml编写,感兴趣的可以了解一下

创建项目

1.搭建一个ASP.NET Core Web API 项目,其他类型项目原理类似。

2.配置新项目,项目名称为DockerDemo

*3. 配置信息勾选启用Docker,并选择Docker OS 环境为 Linux.(根据实际情况选择)

4.完成配置后,会发现生成的项目文件中有一个DockerFile 文件,代表Docker支持已经添加

5.添加测试代码

首先我们添加一个 DemoController 类并添加测试代码

    [ApiController]
    [Route("Demo")]
    public class DemoController : ControllerBase
    {
        [HttpGet]
        [Route("Get")]
        public string Get()
        {
            string model = "{\"code\":\"0\",\"error\":\"" + "0" + "\",\"data\":\"" + _response + "\"}";
            return model;
        }
        private static string _response;
        public static void ResKey(string key)
        {
            _response = key;
        }
    }

之后我们开始编辑appsettings.json 文件 加入测试变量

 "Demo": {
    "Response": "DockerDemo"
  }

最后我们在 Program.cs 代码内加入

DemoController.ResKey( builder.Configuration.GetValue<string>("Demo:Response"));

至此测试需要的代码基本完成。

6.launchSettings.json 配置参数解释

{
  "iisSettings": {
    "windowsAuthentication": false,//是否启用Windows身份验证
    "anonymousAuthentication": true,//是否启用匿名身份验证
    "iisExpress": {
      "applicationUrl": "http://localhost:53445",//应用启动的Url路径。
      "sslPort": 0  //启用SSL的端口
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "Project",
      "launchBrowser": true, //是否在浏览器中启动
      "environmentVariables": { //将环境变量设置为键/值对
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

我们发现在 launchSettings.json 中存在两个 applicationUrl 。 其中IISExpress 对应的启动方式 为 IIS Express 。 profiles 对应的为项目本身。

对应关系如下图:

7. Docker镜像生成

右击项目文件里面的DockerFile文件,选择生成Docker镜像。等待命令执行结束。

当VS镜像生成结束后,可以在Docker -Images 内 看到刚刚最新生成的镜像文件。

使用VSCode 进行镜像文件的配置以及发布

1.打标签

docker tag dockerdemo:latest dockerdemo:1.0.0

在CMD 中执行 docker tag 命令,上述语句意思为将最新的 dockerdemo 镜像 标记为 dockerdemo:1.0.0,在CMD中执行完成后可以在Docker-Images 中看到多出一个 dockerdemo:1.0.0 的镜像。

2.VsCode 安装 Docker插件

在VsCode扩展中搜索Docker插件并安装,安装完成后,VSCode左侧会显示一个Docker图标。

点击Docker扩展图标发现和Docker本身显示的内容差距不大。

3. docker-compose.yml 编写

version: '3.4' //compose版本
services:
  dockerservices:
    image: dockerdemo:1.0.0 //镜像版本
    restart: always //重启
    container_name: dockerdemo
    ports:
      - 8089:80 //端口映射
    volumes:
      - ./appsettings.json:/app/appsettings.jsonimage.png //文件映射

在VsCode中编写yml 文件。

复制appsettings.json文件。

4.发布镜像

在 docker-compose.yml 文件内右击,选择compose up ,等待命令执行完成。

命令执行完成后在Docker 内可以看到 dockerdemo 正在运行。

5.测试发布的服务

在 postman内访问我们之前编写的测试接口,发现能够正常返回。测试通过。

修改Vscode内的 appsetting.json文件。

在 docker-compose.yml 文件内右击,选择compose restart ,等待命令执行完成,重启服务。

再次通过 postman内访问我们之前编写的测试接口,发现能够正常返回,并且参数已经发生改变。测试通过。

到此这篇关于Visual Studio发布 Docker 镜像的实现步骤的文章就介绍到这了,更多相关VS发布Docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker容器映射tcp或udp端口-如何通过docker-compose.yml

    docker容器映射tcp或udp端口-如何通过docker-compose.yml

    这篇文章主要介绍了docker容器映射tcp或udp端口-如何通过docker-compose.yml问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Docker desktop安装mysql过程

    Docker desktop安装mysql过程

    文章介绍了如何在本地已有的Docker环境中拉取并启动MySQL容器,并详细说明了常用的环境变量参数,此外,还讨论了如何通过挂接本地磁盘来持久化MySQL数据,从而避免数据丢失
    2024-12-12
  • docker compose管理docker服务的方法

    docker compose管理docker服务的方法

    DockerCompose通过一个配置文件管理多服务,支持启动、停止、重启等生命周期管理,依赖管理、资源隔离和自动重启等关键能力,是单机多容器应用的首选管理工具,本文给大家介绍docker compose如何管理docker服务,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • Docker Volume存储卷的实现

    Docker Volume存储卷的实现

    Docker的存储卷是一种将宿主机的本地文件系统中的某个目录与容器内部的文件系统中的某个目录建立绑定关系的机制,下面就来介绍一下,感兴趣的可以了解一下
    2024-12-12
  • 基于Docker的几种常用CentOS7镜像小结

    基于Docker的几种常用CentOS7镜像小结

    本文主要介绍了使用 Docker 来制作CentOS 环境的镜像,并上传到阿里云的 Docker 镜像仓库,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • docker容器启动成功外部访问不到的原因分析

    docker容器启动成功外部访问不到的原因分析

    这篇文章主要介绍了docker容器启动成功外部访问不到的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 深入解析docker三种网络模式

    深入解析docker三种网络模式

    这篇文章主要介绍了docker三种网络模式,分别是bridge桥接模式,host主机模式,none无网络模式,每种模式给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • docker容器无法解析域名的解决方案

    docker容器无法解析域名的解决方案

    这篇文章主要介绍了docker容器无法解析域名的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • docker安装sentinel的实现示例

    docker安装sentinel的实现示例

    本文主要介绍了docker安装sentinel的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Docker镜像发布到Docker Hub的实现方法

    Docker镜像发布到Docker Hub的实现方法

    本文主要介绍了Docker镜像发布到Docker Hub的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论