windows下安装docker并发布.netcore项目

windows下安装docker

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。

Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。

因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。

 

在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

1.Win10 系统与Docker

Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。

Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows

注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!

2.安装 Hyper-V

Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。

但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

 

3.安装Docker Desktop for Windows

下载完成exe文件,直接点击进行安装即可,然后安装成功后如下界面,也可以同时注册一个docker账号

 

4.测试安装结果

打开cmd命令窗口,输入

docker run hello-world

出现以下结果即为安装成功。

 

同时在docker desktop images中可以看到已经多了一个hello-world的镜像

5.发布.netcore项目到docker

最关键的来了,如何将支持跨平台的.netcore项目部署到docker中呢?

我们先创建一个.netcore的web项目,此处我选择的为.netcore3.1

在创建时需要选择启用docker支持并且选择windows容器

 

查看解决方案,设置Dockerfile文件为始终复制,此处不设置也可以,后续发布后要在publish文件夹中新建Dockerfile文件

 

Dockerfile文件内容如下

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
​
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
​
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
​
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["CoreForDocker/CoreForDocker.csproj", "CoreForDocker/"]
RUN dotnet restore "CoreForDocker/CoreForDocker.csproj"
COPY . .
WORKDIR "/src/CoreForDocker"
RUN dotnet build "CoreForDocker.csproj" -c Release -o /app/build
​
FROM build AS publish
RUN dotnet publish "CoreForDocker.csproj" -c Release -o /app/publish
​
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "CoreForDocker.dll"]

本地F5直接运行项目,确保项目是可以正常运行的

然后右键发布项目到文件夹中即可

 

打开发布的目录文件,修改dockerfile文件,删除一些不要的信息 只留下以下的内容

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
​
EXPOSE 80
EXPOSE 443
​
COPY . .
​
ENTRYPOINT ["dotnet", "CoreForDocker.dll"]

创建docker images

在publish目录下打开powershell窗口(在目录下shift+右键),输入,注意,规范必须为小写字母命名

docker build -t corefordocker001 .

 

出现以上创建成功的提示

检查image

  • 打开docker desktop,可以看到已经成功创建了这个image

 

  • 或者使用命令查看:

docker images

 

绑定端口运行

  • 使用命令绑定端口:

docker run --name=corefordocker1 -p 2020:80 -d corefordocker001

 

以上出现一串字符串说明是成功了

参数说明

  • -d ,表示在后台以守护态(daemonized)形式运行容器

  • -p 外部端口与内部容器端口映射。

  • --name 指定容器的名称。当然可以不指定,默认会为我们创建

  • 最后一个参数 corefordocker001 就是我们刚创建的镜像名称

  • docker desktop中绑定端口

 

以上,我们分别用命令启动了2020端口 使用工具启动了2021端口

6.验证部署

打开浏览器,分别访问http://localhost:2021/http://localhost:2020/

都可以正常进行访问

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Compose是一个工具,用于定义和运行多个 Docker 容器的配置文件,通常用于简化微服务应用的部署。它允许你使用简单的YAML格式来管理容器、网络和服务之间的依赖关系。下面是安装和使用 `docker-compose.yml` 的步骤: 1. **安装 Docker**:确保你已经安装Docker,因为 Docker Compose依赖于 Docker。你可以访问 Docker 官网 (<https://www.docker.com/products/docker-desktop>) 下载并安装适合你的操作系统的版本。 2. **安装 Docker Compose**:在安装 Docker 后,Docker Compose通常会自动包含在 `docker` 命令行工具中。如果你的 Docker Desktop 是在 Mac 或 Windows 上的,它应该已经预装了。如果你用的是 Linux,可以在终端运行 `sudo apt-get install docker-compose` (对于 Ubuntu) 或 `sudo yum install docker-compose` (对于 CentOS 或 Fedora)。 3. **验证安装**:打开终端或命令提示符,输入 `docker-compose --version`。如果一切正常,你应该能看到 Docker Compose 的版本信息。 4. **编写 `docker-compose.yml`**:这是一个 YAML 文件,描述了你的应用程序是如何由不同服务(如数据库、API等)组成的。例如: ```yaml version: '3' services: web: build: . ports: - "8000:8000" depends_on: - db db: image: postgres:latest ``` 5. **运行服务**:在 `docker-compose.yml` 文件所在的目录下,运行 `docker-compose up`。这将根据配置启动并链接所有服务。 6. **监控和管理**:你可以使用 `docker-compose down` 关闭所有服务,`docker-compose ps` 查看服务状态,`docker-compose logs` 查看日志等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值